/*
 * SistemaTesisView.java
 */

package sistematesis;

import com.itextpdf.text.BadElementException;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Font;
import com.itextpdf.text.FontFactory;
import com.itextpdf.text.Image;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
import java.awt.Color;
import java.awt.Toolkit;
import java.awt.event.WindowEvent;
import org.jdesktop.application.Action;
import org.jdesktop.application.ResourceMap;
import org.jdesktop.application.SingleFrameApplication;
import org.jdesktop.application.FrameView;
import org.jdesktop.application.Task;
import org.jdesktop.application.TaskMonitor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowListener;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.DecimalFormat;
import java.util.ArrayList;
import javax.swing.Timer;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileSystemView;
import javax.swing.table.DefaultTableModel;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.jfree.chart.*;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DatasetGroup;
import org.jfree.data.general.DefaultPieDataset;

/**
 * The application's main frame.
 */
public class SistemaTesisView extends FrameView  {

public SistemaTesisView(SingleFrameApplication app) {
        super(app);
        initComponents();

        // status bar initialization - message timeout, idle icon and busy animation, etc
        ResourceMap resourceMap = getResourceMap();
        int messageTimeout = resourceMap.getInteger("StatusBar.messageTimeout");
        messageTimer = new Timer(messageTimeout, new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                statusMessageLabel.setText("");
            }
        });
        messageTimer.setRepeats(false);
        int busyAnimationRate = resourceMap.getInteger("StatusBar.busyAnimationRate");
        for (int i = 0; i < busyIcons.length; i++) {
            busyIcons[i] = resourceMap.getIcon("StatusBar.busyIcons[" + i + "]");
        }
        busyIconTimer = new Timer(busyAnimationRate, new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                busyIconIndex = (busyIconIndex + 1) % busyIcons.length;
                statusAnimationLabel.setIcon(busyIcons[busyIconIndex]);
            }
        });
        idleIcon = resourceMap.getIcon("StatusBar.idleIcon");
        statusAnimationLabel.setIcon(idleIcon);
        progressBar.setVisible(false);

       

        // connecting action tasks to status bar via TaskMonitor
        TaskMonitor taskMonitor = new TaskMonitor(getApplication().getContext());
        taskMonitor.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
            public void propertyChange(java.beans.PropertyChangeEvent evt) {
                String propertyName = evt.getPropertyName();
                if ("started".equals(propertyName)) {
                    if (!busyIconTimer.isRunning()) {
                        statusAnimationLabel.setIcon(busyIcons[0]);
                        busyIconIndex = 0;
                        busyIconTimer.start();
                    }
                    progressBar.setVisible(true);
                    progressBar.setIndeterminate(false);
                } else if ("done".equals(propertyName)) {
                    busyIconTimer.stop();
                    statusAnimationLabel.setIcon(idleIcon);
                    progressBar.setVisible(false);
                    progressBar.setValue(0);
                } else if ("message".equals(propertyName)) {
                    String text = (String)(evt.getNewValue());
                    statusMessageLabel.setText((text == null) ? "" : text);
                    messageTimer.restart();
                } else if ("progress".equals(propertyName)) {
                    int value = (Integer)(evt.getNewValue());
                    progressBar.setVisible(true);
                    progressBar.setIndeterminate(false);
                    progressBar.setValue(value);
                }
            }
        });
    }

/*#######################################*/
/*CAPTURA DE DATOS*/
/*#######################################*/


@Action
public void IngresoFuenteAsignaturas() {
        if (IngresoAsignaturasBox == null) {
            JFrame mainFrame = SistemaTesisApp.getApplication().getMainFrame();
            IngresoAsignaturasBox = new SistemaTesisIngresoAsignaturas(mainFrame);
            IngresoAsignaturasBox.setLocationRelativeTo(mainFrame);
        }
        SistemaTesisApp.getApplication().show(IngresoAsignaturasBox);

        IngresoAsignaturasBox.addWindowListener(new WindowListener() {

            public void windowOpened(WindowEvent e) {
                throw new UnsupportedOperationException("Not supported yet.");
            }

            public void windowClosing(WindowEvent e) {
                
               throw new UnsupportedOperationException("Not supported yet.");
            }

            public void windowClosed(WindowEvent e) {
                 UrlFuente=SistemaTesisIngresoAsignaturas.Devuelve();
            }

            public void windowIconified(WindowEvent e) {
                throw new UnsupportedOperationException("Not supported yet.");
            }

            public void windowDeiconified(WindowEvent e) {
                throw new UnsupportedOperationException("Not supported yet.");
            }

            public void windowActivated(WindowEvent e) {
                throw new UnsupportedOperationException("Not supported yet.");
            }

            public void windowDeactivated(WindowEvent e) {
                throw new UnsupportedOperationException("Not supported yet.");
            }

           
        });
    }

@Action
public void IngresoFuenteMalla() {
        if (IngresoMallaBox == null) {
            JFrame mainFrame = SistemaTesisApp.getApplication().getMainFrame();
            IngresoMallaBox = new SistemaTesisIngresoMallaCurricular(mainFrame);
            IngresoMallaBox.setLocationRelativeTo(mainFrame);
        }
        SistemaTesisApp.getApplication().show(IngresoMallaBox);
        IngresoMallaBox.addWindowListener(new WindowListener() {

            public void windowOpened(WindowEvent e) {
                throw new UnsupportedOperationException("Not supported yet.");
            }

            public void windowClosing(WindowEvent e) {
                throw new UnsupportedOperationException("Not supported yet.");
            }

            public void windowClosed(WindowEvent e) {
               UrlMalla=SistemaTesisIngresoMallaCurricular.Devuelve2();
            }

            public void windowIconified(WindowEvent e) {
                throw new UnsupportedOperationException("Not supported yet.");
            }

            public void windowDeiconified(WindowEvent e) {
                throw new UnsupportedOperationException("Not supported yet.");
            }

            public void windowActivated(WindowEvent e) {
                throw new UnsupportedOperationException("Not supported yet.");
            }

            public void windowDeactivated(WindowEvent e) {
                throw new UnsupportedOperationException("Not supported yet.");
            }
        });
    }

@Action
public void ProcesaDatosAsignaturas() throws FileNotFoundException, IOException, NoSuchFieldException{
        if(UrlFuente==null||UrlFuente.equals("")){
            JOptionPane.showMessageDialog(null,"Debe Seleccionar una Fuente de Datos","Error",JOptionPane.ERROR_MESSAGE);
        }
        String ruta = UrlFuente;
        HSSFWorkbook libro = new HSSFWorkbook(new FileInputStream(ruta));
        HSSFSheet hoja = libro.getSheet(libro.getSheetName(0));
        HSSFRow row = null;
        HSSFCell cell = null;
        DefaultTableModel temp =(DefaultTableModel)TablaAsignaturas.getModel();
        temp.setRowCount(1);

        for ( int i=1, z=hoja.getLastRowNum(); i<z; i++ )
        {
            CantAsignaturasInscritas=hoja.getLastRowNum();
            TablaAsignaturas.setModel(temp);
            Object nuevo[] = {"","","","","","","","","","","","",""};
            temp.addRow(nuevo);
            row = hoja.getRow(i);
            if (row != null) {
//            System.out.print("\n" + i + "\t");
            for (int ii=0, zz=row.getLastCellNum(); ii<zz; ii++)
                {

                    cell = row.getCell((int) ii);
                        if (cell != null) {
                        
          //obtiene codigo carrera (i es fila - ii es columna)
           if(i==1 && ii==1)
           CodigoCarrera.setText(cell.getStringCellValue());

          //Obtiene Intervalo de Periodos
           if(ii==2){
                    String StrAux=new String();
                    StrAux= cell.getStringCellValue().trim();//obtiene valor de celda como String y elimina espacios con "trim"
                    StrAux=StrAux.replace(" ", "");//Elimina Espacios Internos
                    Double Periodo=Double.parseDouble(StrAux.substring(0,4));//separa el año desde el String y lo convierte en double
                    if(StrAux.substring(5).equals("2")){//si el corresponde al segundo semestre agrega 0.5 al año almacenado en Periodo
                            Periodo=Periodo+0.5;
                    }
 
                    if(IntervaloPeriodoDesde>Periodo)IntervaloPeriodoDesde=Periodo;
                    if(IntervaloPeriodoHasta<Periodo)IntervaloPeriodoHasta=Periodo;
           }

          // Imprimimos por pantalla el contenido de la celda seleccionada
           if (HSSFCell.CELL_TYPE_STRING == cell.getCellType()){
                TablaAsignaturas.setValueAt(cell.getStringCellValue(),i,ii);
           }
            if (HSSFCell.CELL_TYPE_NUMERIC == cell.getCellType()){
                Integer aux = (int)cell.getNumericCellValue();
                TablaAsignaturas.setValueAt(aux,i,ii);
            }
          }                
      }

    }
             
  }
        
  //Setea Periodo Inicio en Sistema.
  if(IntervaloPeriodoDesde%1==0){
     String AñoDesdeAux=new String();
     AñoDesdeAux=IntervaloPeriodoDesde.toString();
     Ano_Desde.setText(AñoDesdeAux.substring(0,4));
     Periodo_Desde.setText("1");
  }else{
     String AñoDesdeAux1=new String();
     AñoDesdeAux1=IntervaloPeriodoDesde.toString();
     Ano_Desde.setText(AñoDesdeAux1.substring(0,4));
     Periodo_Desde.setText("2");
  }

  //Setea Periodo Final en Sistema.
  if(IntervaloPeriodoDesde%1!=0){
     String AñoHastaAux=new String();
     AñoHastaAux=IntervaloPeriodoHasta.toString();
     Ano_Hasta.setText(AñoHastaAux.substring(0,4));
     Periodo_Hasta.setText("1");
  }else{
     String AñoHastaAux1=new String();
     AñoHastaAux1=IntervaloPeriodoHasta.toString();
     Ano_Hasta.setText(AñoHastaAux1.substring(0,4));
     Periodo_Hasta.setText("2");
  }

  ProcesaDatosMalla();
  Renuncias();
  
  JOptionPane.showMessageDialog(null, "Captura de Datos Exitosa!");
    }

public void Renuncias() throws FileNotFoundException, IOException, NoSuchFieldException{
        if(UrlFuente==null||UrlFuente.equals("")){
            JOptionPane.showMessageDialog(null,"Debe Seleccionar una Fuente de Datos","Error",JOptionPane.ERROR_MESSAGE);
        }

        String ruta1 = UrlFuente;
        HSSFWorkbook libro1 = new HSSFWorkbook(new FileInputStream(ruta1));
        HSSFSheet hoja1 = libro1.getSheet(libro1.getSheetName(1));
        HSSFRow row = null;
        HSSFCell cell = null;
        DefaultTableModel temp =(DefaultTableModel)TablaRenuncias.getModel();
        temp.setRowCount(1);

        for ( int i=1, z=hoja1.getLastRowNum(); i<z; i++ )
        {
            TablaRenuncias.setModel(temp);
            Object nuevo[] = {"","","","","","","",""};
            temp.addRow(nuevo);
            row = hoja1.getRow(i);
            if (row != null) {
//            System.out.print("\n" + i + "\t");
            for (int ii=0, zz=row.getLastCellNum(); ii<zz; ii++)
                {

                    cell = row.getCell((short) ii);
                        if (cell != null) {
                        // Imprimimos por pantalla el contenido de la celda seleccionada

           if (HSSFCell.CELL_TYPE_STRING == cell.getCellType()){

                TablaRenuncias.setValueAt(cell.getStringCellValue(),i,ii);
           }
            if (HSSFCell.CELL_TYPE_NUMERIC == cell.getCellType()){
                 Integer aux = (int)cell.getNumericCellValue();
                TablaRenuncias.setValueAt(aux,i,ii);
            }
          }
      }
    }
  }

}


/*#######################################*/
   /*GENERACION DE REPORTES ANTIGUA*/
/*#######################################*/
@Action
@SuppressWarnings("IncompatibleEquals")
public boolean ValidaPeticion() throws FileNotFoundException, IOException, NoSuchFieldException{
              
        Double DesdeAux;
        Double HastaAux;
        //valida si existen fuentes de datos
        if(UrlFuente==null||UrlMalla==null ||UrlFuente.equals("")||UrlMalla.equals("")){
            JOptionPane.showMessageDialog(null,"No Existen Fuentes de Datos Asociadas","Error",JOptionPane.ERROR_MESSAGE);
            return false;
        }
        if(CodigoCarrera.getText().equals("")){
            JOptionPane.showMessageDialog(null,"Debe Capturar Datos de La Fuente de Datos","Error",JOptionPane.ERROR_MESSAGE);
            return false;
        }
        if (Integer.parseInt(Periodo_Desde.getText())>1 && Regimen.getSelectedItem().toString().equals("Anual")){
            JOptionPane.showMessageDialog(null,"La Carrera en Estudio es de Regimen ANUAL, Indique Periodo = 1 ","Error",JOptionPane.ERROR_MESSAGE);
            return false;
        }

        if (Integer.parseInt(Periodo_Desde.getText())<1 || Integer.parseInt(Periodo_Desde.getText())>2 || Integer.parseInt(Periodo_Hasta.getText())<1||Integer.parseInt(Periodo_Hasta.getText())>2){
            JOptionPane.showMessageDialog(null,"Periodos no corresponden. Debe ser '1' o '2'. En caso de ser Regimen Anual indicar '1' ","Error",JOptionPane.ERROR_MESSAGE);
            return false;

        }
       //valida periodo de estudio, si se encuentra dentro del parámetro
        DesdeAux=Double.parseDouble(Ano_Desde.getText());
        if(Periodo_Desde.getText().equals("2"))DesdeAux=DesdeAux+0.5;
        HastaAux=Double.parseDouble(Ano_Hasta.getText());
        if(Periodo_Hasta.getText().equals("2"))HastaAux=HastaAux+0.5;

        //valida si estan completos datos generales de la carrerla
        if(NombreCarrera.getText().equals("-")|| Regimen.getSelectedItem().toString().equals("-") || DuracionPrograma.getText().equals("-") ){
            JOptionPane.showMessageDialog(null,"Debe Completar campos obligatorios en 'DATOS GENERALES DE CARRERA'","Error",JOptionPane.ERROR_MESSAGE);
            return false;
         }
        //valida si intervalo ingresado por usuario es correcto y si el año de inicio <es menor que el año de termino del intervalo
        if(!(DesdeAux>=IntervaloPeriodoDesde&& HastaAux<=IntervaloPeriodoHasta && DesdeAux<=HastaAux)){
            String p1="1";
            String p2="1";
            if (IntervaloPeriodoDesde%1!=0)p1="2";
            if (IntervaloPeriodoHasta%1!=0)p2="2";
             JOptionPane.showMessageDialog(null,"El Periodo Ingresado no Corresponde, debe Pertenecer al Intervalo "+IntervaloPeriodoDesde.toString().substring(0,4)+"-"+p1+" hasta "+IntervaloPeriodoHasta.toString().substring(0,4)+"-"+p2,"Error",JOptionPane.ERROR_MESSAGE);
             return false;
        }
       
                     

return true;
}


/***##################################*****/
    /*  GENERACION DE REPORTES*/
/***##################################*****/
@Action
public Task ReporteAprobacion() throws IOException, NoSuchFieldException, InterruptedException {
        return new ReporteAprobacionTask(getApplication());

  }
private class ReporteAprobacionTask extends org.jdesktop.application.Task<Object, Void> {
        ReporteAprobacionTask(org.jdesktop.application.Application app) {
            // Runs on the EDT.  Copy GUI state that
            // doInBackground() depends on from parameters
            // to ReporteAprobacionTask fields, here.
            super(app);

        }
        @Override protected Object doInBackground() throws IOException, FileNotFoundException, NoSuchFieldException, InterruptedException {
            // Your Task's code here.  This method runs
            // on a background thread, so don't reference
            // the Swing GUI from here.
            statusMessageLabel.setText("Generando Reporte de Aprobación de Asignaturas...");
            progressBar.setValue(0);
            boolean puedoSeguir= true;
            puedoSeguir=ValidaPeticion();
            if(!puedoSeguir){
            return null;
            }

            Double DesdeAux, HastaAux;
            //valida periodo de estudio, si se encuentra dentro del parámetro
            DesdeAux=Double.parseDouble(Ano_Desde.getText());
            if(Periodo_Desde.getText().equals("2"))DesdeAux=DesdeAux+0.5;
            HastaAux=Double.parseDouble(Ano_Hasta.getText());
            if(Periodo_Hasta.getText().equals("2"))HastaAux=HastaAux+0.5;

            /*-------Obtiene POrcentaje de Aprobación de Periodo Solicitado por Usuario------*/
            Double porcentApr;
            Aprobacion RepApr=new Aprobacion();
            porcentApr=RepApr.porcentajeAprobacion(UrlFuente, DesdeAux, HastaAux);
            DecimalFormat fd = new DecimalFormat("0.00");
            PorcentAprReport.setText(String.valueOf(fd.format(porcentApr)));

            /*-------------------------------------------------------*/

            /*--Setea Total de AsignaturasGeneranPerdida en reporte de Aprobacion---*/
            TotalAsignaturas.setText(Aprobacion.TotalAsignaturas().toString());
            Aprobados1instan.setText(Aprobacion.Aprobados().toString());

            /*--------------------------------------------------------*/
            progressBar.setValue(10);
            /*---------Obtiene Porcentajes por Periodo-----------*/
            //para saber cuantos periodos comprenden el intervalo ingresado por el usuario.
            int CantPeriodos=0;
            CantPeriodos=(int) (IntervaloPeriodoHasta-IntervaloPeriodoDesde);
            if(Regimen.getSelectedItem().toString().equals("Semestral"))// consulta si es semestral
            CantPeriodos=CantPeriodos*2+1;
            //si es anual, queda igual.
            ArrayList Aux1 = Aprobacion.porPeriodo(UrlFuente, DesdeAux, HastaAux, CantPeriodos);

            /*crea arreglo con periodos y cantidades  [pppp-p,cant] inicializadas en cero*/
            ArrayList CantPorPeriodo=new ArrayList();
            Double desde=DesdeAux;

            //llena arreglo inicializado en cero con Periodos
            for(int i=0; i<=CantPeriodos && desde<=HastaAux;i++){

            if(Regimen.getSelectedItem().toString().equals("Semestral")){//si es emestral
            String pDesde= String.valueOf(desde.intValue());//captura primer periodo
            if(desde%1==0) pDesde= pDesde+"-1";
            if(desde%1!=0) pDesde= pDesde+"-2";
            CantPorPeriodo.add(new ArrayList());
            ((ArrayList)CantPorPeriodo.get(i)).add(pDesde);
            ((ArrayList)CantPorPeriodo.get(i)).add((int)0);
            ((ArrayList)CantPorPeriodo.get(i)).add((int)0);
            desde=desde+0.5;
            }else{//si es anual
            String pDesde= String.valueOf(desde.intValue());//captura primer periodo
            if(desde%1==0) pDesde= pDesde+"-1";
            if(desde%1!=0) pDesde= pDesde+"-2";
            CantPorPeriodo.add(new ArrayList());
            ((ArrayList)CantPorPeriodo.get(i)).add(pDesde);
            ((ArrayList)CantPorPeriodo.get(i)).add((int)0);
            ((ArrayList)CantPorPeriodo.get(i)).add((int)0);
            desde=desde+1.0;
            }
            }
            //            System.out.println("aprobacion por periodo"+CantPorPeriodo+"------------"+Aux1);
            /*****************************************************************************/
            /*Llena Arrglo de Aprobacion por Periodo con Valore Válidos*/
            for(int t=0;t<CantPorPeriodo.size();t++){
            progressBar.setValue(25);
            for(int k=0; k<Aux1.size();k++){
            if((((ArrayList)CantPorPeriodo.get(t)).get(0)).toString().replace(" ", "").trim().equals((((ArrayList)Aux1.get(k)).get(0)).toString().replace(" ", "").trim())){

            ((ArrayList)CantPorPeriodo.get(t)).set(1,(((ArrayList)Aux1.get(k)).get(1)).toString().replace(" ", "").trim());
            ((ArrayList)CantPorPeriodo.get(t)).set(2,(((ArrayList)Aux1.get(k)).get(2)).toString().replace(" ", "").trim());
            }
            }
            }
            //            System.out.println("aprobacion por periodo"+CantPorPeriodo);
            /**********************************************************/

            /*Crea Grafico de Periodos y llena tabla*/
            DefaultPieDataset datasetPeriodos = new DefaultPieDataset();
            for(int i=0;i<CantPorPeriodo.size();i++){

            datasetPeriodos.setValue(((ArrayList)CantPorPeriodo.get(i)).get(0).toString(), Integer.parseInt(((ArrayList)CantPorPeriodo.get(i)).get(1).toString()));

            }
            JFreeChart ChartporPeriodo = ChartFactory.createPieChart("Aprobación por Periodo Académico",datasetPeriodos, true,true, true);
            BufferedImage image = ChartporPeriodo.createBufferedImage(630,244);
            ImageIcon im = new ImageIcon(image);
            LabelGraficoAprPeriodo.setIcon(im);
            PanelPrincipalAprobacion.add(LabelGraficoAprPeriodo);
            PanelPrincipalAprobacion.updateUI();
            PanelPrincipalAprobacion.repaint();
            int i,cont=0;
            DefaultTableModel modelo = new DefaultTableModel();
            modelo.setRowCount(0);
            modelo.addColumn("Periodo");
            modelo.addColumn("Cantidad");
            modelo.addColumn("Total Inscritos");

            for(i=0; i<CantPorPeriodo.size();i++ ){
            TablaAprPeriodo.setModel(modelo);
            Object nuevo[] = {"","",""};
            modelo.addRow(nuevo);
            TablaAprPeriodo.setValueAt(((ArrayList)CantPorPeriodo.get(i)).get(0),cont,0);
            TablaAprPeriodo.setValueAt(((ArrayList)CantPorPeriodo.get(i)).get(1),cont,1);
            TablaAprPeriodo.setValueAt(((ArrayList)CantPorPeriodo.get(i)).get(2),cont,2);
            cont++;

            }
            /******************FIN Crea Grafico de Periodos y llena tabla****************************/
            progressBar.setValue(30);
            /*****OBTIENE PORCENTAJES POR ASIGNATURA*******/
            ArrayList CantPorAsignatura;
            CantPorAsignatura=Aprobacion.porAsignaturas(UrlFuente,UrlMalla, DesdeAux, HastaAux, CantPeriodos);
            DefaultCategoryDataset datasetPeriodos2 = new DefaultCategoryDataset();

            for(int w=0;w<CantPorAsignatura.size();w++){
            DatasetGroup grupo = new DatasetGroup(((ArrayList)CantPorAsignatura.get(w)).get(3).toString());
            datasetPeriodos2.setGroup(grupo);
            int Aprobados = Integer.parseInt(((ArrayList)CantPorAsignatura.get(w)).get(1).toString());
            int Total=Integer.parseInt(((ArrayList)CantPorAsignatura.get(w)).get(2).toString());
            datasetPeriodos2.setValue(Aprobados,"Nivel de Aprobacion",((ArrayList)CantPorAsignatura.get(w)).get(3).toString());
            datasetPeriodos2.setValue(Total-Aprobados,"Total de Inscritos",((ArrayList)CantPorAsignatura.get(w)).get(3).toString());

            }

            JFreeChart ChartporAsignatura = ChartFactory.createStackedBarChart("Aprobación por Asignaturas","Asignaturas", "Nivel de Aprobacion", datasetPeriodos2, PlotOrientation.HORIZONTAL, true,true, true);

            ChartporAsignatura.getTitle().setPaint(Color.blue);
            CategoryPlot p = ChartporAsignatura.getCategoryPlot();
            p.setRangeGridlinePaint(Color.red);
            BufferedImage image2 = ChartporAsignatura.createBufferedImage(800,600);
            ImageIcon im2 = new ImageIcon(image2);
            LabelGraficoAprAsig1.setIcon(im2);
            PanelPrincipalAprobacion.add(LabelGraficoAprAsig1);
            PanelPrincipalAprobacion.updateUI();
            PanelPrincipalAprobacion.repaint();

            int cont2=0;
            DefaultTableModel modelo2 = new DefaultTableModel();
            modelo2.setRowCount(0);
            modelo2.addColumn("Asignatura");
            modelo2.addColumn("Cantidad");
            modelo2.addColumn("Total Inscritos");

            for(i=0; i<CantPorAsignatura.size();i++ ){
            TablaAprAsignatura.setModel(modelo2);
            Object nuevo[] = {"",""};
            modelo2.addRow(nuevo);
            TablaAprAsignatura.setValueAt(((ArrayList)CantPorAsignatura.get(i)).get(3),cont2,0);
            TablaAprAsignatura.setValueAt(((ArrayList)CantPorAsignatura.get(i)).get(1),cont2,1);
            TablaAprAsignatura.setValueAt(((ArrayList)CantPorAsignatura.get(i)).get(2),cont2,2);
            cont2++;

            }

            /*****FIN OBTIENE PORCENTAJES POR ASIGNATURA*****/
            progressBar.setValue(50);
            /****OBTIENE PORCENTAJES POR PROFESOR******/

            ArrayList CantPorProfesor;
            CantPorProfesor=Aprobacion.porProfesor(UrlFuente, DesdeAux, HastaAux, CantPeriodos);
            DefaultCategoryDataset datasetPeriodos3 = new DefaultCategoryDataset();

            for(int s=0;s<CantPorProfesor.size();s++){
            DatasetGroup grupo1 = new DatasetGroup(((ArrayList)CantPorProfesor.get(s)).get(0).toString());
            datasetPeriodos3.setGroup(grupo1);
            int AprobadosConProfe =Integer.parseInt(((ArrayList)CantPorProfesor.get(s)).get(1).toString());
            int TotalProfe=(Integer.parseInt(((ArrayList)CantPorProfesor.get(s)).get(2).toString()));
            datasetPeriodos3.setValue(AprobadosConProfe,"Nivel de Aprobacion",((ArrayList)CantPorProfesor.get(s)).get(0).toString());
            datasetPeriodos3.setValue(TotalProfe-AprobadosConProfe,"Total de Inscritos",((ArrayList)CantPorProfesor.get(s)).get(0).toString());


            }
            JFreeChart ChartporProfesor = ChartFactory.createStackedBarChart("Aprobación por Profesor","Profesor", "Nivel de Aprobacion", datasetPeriodos3, PlotOrientation.HORIZONTAL, true,true, true);

            ChartporProfesor.getTitle().setPaint(Color.blue);
            CategoryPlot p3 = ChartporProfesor.getCategoryPlot();
            p3.setRangeGridlinePaint(Color.red);
            BufferedImage image3 = ChartporProfesor.createBufferedImage(800,1170);
            ImageIcon im3 = new ImageIcon(image3);
            LabelGraficoAprProfesor.setIcon(im3);
            PanelPrincipalAprobacion.add(LabelGraficoAprProfesor);
            PanelPrincipalAprobacion.updateUI();
            PanelPrincipalAprobacion.repaint();

            int cont3=0;
            DefaultTableModel modelo3 = new DefaultTableModel();
            modelo3.setRowCount(0);
            modelo3.addColumn("Profesor");
            modelo3.addColumn("Cantidad");
            modelo3.addColumn("Total de Inscritos");

            for(i=0; i<CantPorProfesor.size();i++ ){
            TablaAprProfesor.setModel(modelo3);
            Object nuevo[] = {"",""};
            modelo3.addRow(nuevo);
            TablaAprProfesor.setValueAt(((ArrayList)CantPorProfesor.get(i)).get(0),cont3,0);
            TablaAprProfesor.setValueAt(((ArrayList)CantPorProfesor.get(i)).get(1),cont3,1);
            TablaAprProfesor.setValueAt(((ArrayList)CantPorProfesor.get(i)).get(2),cont3,2);
            cont3++;
            }
            /***FIN obtiene porcentajes por profesor***/

            progressBar.setValue(75);
            /********OBTIENE PORCENTAJES POR AREA DE CONOCIMIENTO *********/

            ArrayList CantAreaConoc = new  ArrayList();
            CantAreaConoc = Aprobacion.porPorAreaDeConoc(UrlMalla, UrlFuente, DesdeAux, HastaAux, CantPeriodos);

            DefaultCategoryDataset datasetPeriodos4 = new DefaultCategoryDataset();

            for(int y=0;y<CantAreaConoc.size();y++){
            DatasetGroup grupo2 = new DatasetGroup(((ArrayList)CantAreaConoc.get(y)).get(0).toString());
            datasetPeriodos3.setGroup(grupo2);
            int AprobadosPorAreaConoc =Integer.parseInt(((ArrayList)CantAreaConoc.get(y)).get(1).toString());
            int TotalAreaConoc=(Integer.parseInt(((ArrayList)CantAreaConoc.get(y)).get(2).toString()));
            datasetPeriodos4.setValue(AprobadosPorAreaConoc,"Nivel de Aprobacion",((ArrayList)CantAreaConoc.get(y)).get(0).toString());
            datasetPeriodos4.setValue(TotalAreaConoc-AprobadosPorAreaConoc,"Total de Inscripciones",((ArrayList)CantAreaConoc.get(y)).get(0).toString());


            }
            JFreeChart ChartPorAreaConoc= ChartFactory.createStackedBarChart("Aprobación por Área de Conocimiento","Area de Conocimiento", "Nivel de Aprobacion", datasetPeriodos4, PlotOrientation.HORIZONTAL, true,true, true);

            ChartPorAreaConoc.getTitle().setPaint(Color.blue);
            CategoryPlot p4 = ChartPorAreaConoc.getCategoryPlot();
            p4.setRangeGridlinePaint(Color.red);
            BufferedImage image4 = ChartPorAreaConoc.createBufferedImage(800,600);
            ImageIcon im4 = new ImageIcon(image4);
            LabelGraficoAprAreaConocimiento.setIcon(im4);
            PanelPrincipalAprobacion.add(LabelGraficoAprAreaConocimiento);
            PanelPrincipalAprobacion.updateUI();
            PanelPrincipalAprobacion.repaint();

            int cont4=0;
            DefaultTableModel modelo4 = new DefaultTableModel();
            modelo4.setRowCount(0);
            modelo4.addColumn("Area De Conocimiento");
            modelo4.addColumn("Cantidad");
            modelo4.addColumn("Total de Inscripciones");

            for(i=0; i<CantAreaConoc.size();i++ ){
            TablaAprAreaDeConocimiento.setModel(modelo4);
            Object nuevo[] = {"",""};
            modelo4.addRow(nuevo);
            TablaAprAreaDeConocimiento.setValueAt(((ArrayList)CantAreaConoc.get(i)).get(0),cont4,0);
            TablaAprAreaDeConocimiento.setValueAt(((ArrayList)CantAreaConoc.get(i)).get(1),cont4,1);
            TablaAprAreaDeConocimiento.setValueAt(((ArrayList)CantAreaConoc.get(i)).get(2),cont4,2);
            cont4++;
            }
            /*******FIN DE OBTENCION DE PORCENTAJES POR AREA DE CONOCIMIENTO*********/
            progressBar.setValue(90);
            /***INSTANCIA DE APROBACION***/
            PrimeraInstanciaField.setText(Aprobacion.InstanciaDeAprobación(UrlFuente, DesdeAux, HastaAux, CantPeriodos).get(0).toString());
            SegundaInstanciaField.setText(Aprobacion.InstanciaDeAprobación(UrlFuente, DesdeAux, HastaAux, CantPeriodos).get(1).toString());
            MasDeSegundaField.setText(Aprobacion.InstanciaDeAprobación(UrlFuente, DesdeAux, HastaAux, CantPeriodos).get(2).toString());
            Double pri=0.0,seg=0.0,mas=0.0;
            DecimalFormat df = new DecimalFormat("0.00");
            pri=Double.valueOf(Double.valueOf(Aprobacion.InstanciaDeAprobación(UrlFuente, DesdeAux, HastaAux, CantPeriodos).get(0).toString())*100/Aprobacion.Aprobados());
            PorcentajePrimeraInstancia.setText(String.valueOf(df.format(pri)));
            seg=Double.valueOf(Double.valueOf(Aprobacion.InstanciaDeAprobación(UrlFuente, DesdeAux, HastaAux, CantPeriodos).get(1).toString())*100/Aprobacion.Aprobados());
            PorcentajeSegundaInstancia1.setText(String.valueOf(df.format(seg)));
            mas=Double.valueOf(Double.valueOf(Aprobacion.InstanciaDeAprobación(UrlFuente, DesdeAux, HastaAux, CantPeriodos).get(2).toString())*100/Aprobacion.Aprobados());
            PorcentajeMasDeSegundaInstancia.setText(String.valueOf(df.format(mas)));
            progressBar.setValue(99);
            /***INSTANCIA DE APROBACION****/
            AprobacionGenerada=true;
            progressBar.setVisible(true);
            progressBar.setValue(100);
            statusMessageLabel.setText("Terminado!");
            JOptionPane.showMessageDialog(null, "Generé Aprobación");
            progressBar.setVisible(false);
            statusMessageLabel.setText("");

            return null;  // return your result
        }
        @Override protected void succeeded(Object result) {
            // Runs on the EDT.  Update the GUI based on
            // the result computed by doInBackground().
        }
    }

@Action
public Task ReporteReprobacion() throws IOException, NoSuchFieldException, InterruptedException{
        return new ReporteReprobacionTask(getApplication());
}
private class ReporteReprobacionTask extends org.jdesktop.application.Task<Object, Void> {
        ReporteReprobacionTask(org.jdesktop.application.Application app) throws FileNotFoundException, IOException, NoSuchFieldException {
            // Runs on the EDT.  Copy GUI state that
            // doInBackground() depends on from parameters
            // to ReporteReprobacionTask fields, here.
            super(app);
         
        }
        @Override protected Object doInBackground() throws FileNotFoundException, IOException, NoSuchFieldException {
            statusMessageLabel.setText("Generando Reporte de Reprobación de Asignaturas...");
            progressBar.setValue(0);
            boolean puedoSeguir= true;
            puedoSeguir=ValidaPeticion();
            if(!puedoSeguir){
            return null;
            }
            Double DesdeAux, HastaAux;
            //valida periodo de estudio, si se encuentra dentro del parámetro
            DesdeAux=Double.parseDouble(Ano_Desde.getText());
            if(Periodo_Desde.getText().equals("2"))DesdeAux=DesdeAux+0.5;
            HastaAux=Double.parseDouble(Ano_Hasta.getText());
            if(Periodo_Hasta.getText().equals("2"))HastaAux=HastaAux+0.5;

            /*-------Obtiene POrcentaje de Aprobación de Periodo Solicitado por Usuario------*/
            Double porcentRpr;
            Reprobacion RepRpr=new Reprobacion();
            porcentRpr=RepRpr.porcentajeReprobacion(UrlFuente, DesdeAux, HastaAux);
            DecimalFormat fd = new DecimalFormat("0.00");
            PorcentRprReport.setText(String.valueOf(fd.format(porcentRpr)));

            /*-------------------------------------------------------*/

            /*--Setea Total de AsignaturasGeneranPerdida en reporte de Aprobacion---*/
            TotalAsignaturas.setText(Reprobacion.TotalAsignaturas().toString());
            Aprobados1instan.setText(Reprobacion.Reprobados().toString());

            /*--------------------------------------------------------*/

            /*---------Obtiene Porcentajes por Periodo-----------*/
            //para saber cuantos periodos comprenden el intervalo ingresado por el usuario.
            int CantPeriodos=0;
            CantPeriodos=(int) (IntervaloPeriodoHasta-IntervaloPeriodoDesde);
            if(Regimen.getSelectedItem().toString().equals("Semestral"))// consulta si es semestral
            CantPeriodos=CantPeriodos*2+1;
            //si es anual, queda igual.
            ArrayList Aux1 = Reprobacion.porPeriodo(UrlFuente, DesdeAux, HastaAux, CantPeriodos);

            /*crea arreglo con periodos y cantidades  [pppp-p,cant] inicializadas en cero*/
            ArrayList CantPorPeriodo=new ArrayList();
            Double desde=DesdeAux;
             progressBar.setValue(10);
            //llena arreglo inicializado en cero con Periodos
            for(int i=0; i<=CantPeriodos && desde<=HastaAux;i++){

            if(Regimen.getSelectedItem().toString().equals("Semestral")){//si es emestral
            String pDesde= String.valueOf(desde.intValue());//captura primer periodo
            if(desde%1==0) pDesde= pDesde+"-1";
            if(desde%1!=0) pDesde= pDesde+"-2";
            CantPorPeriodo.add(new ArrayList());
            ((ArrayList)CantPorPeriodo.get(i)).add(pDesde);
            ((ArrayList)CantPorPeriodo.get(i)).add((int)0);
            ((ArrayList)CantPorPeriodo.get(i)).add((int)0);
            desde=desde+0.5;
            }else{//si es anual
            String pDesde= String.valueOf(desde.intValue());//captura primer periodo
            if(desde%1==0) pDesde= pDesde+"-1";
            if(desde%1!=0) pDesde= pDesde+"-2";
            CantPorPeriodo.add(new ArrayList());
            ((ArrayList)CantPorPeriodo.get(i)).add(pDesde);
            ((ArrayList)CantPorPeriodo.get(i)).add((int)0);
            ((ArrayList)CantPorPeriodo.get(i)).add((int)0);
            desde=desde+1.0;
            }
            }
//            System.out.println("reprobacion por periodo"+CantPorPeriodo+"------------"+Aux1);
            /*****************************************************************************/
            /*Llena Arrglo de Aprobacion por Periodo con Valore Válidos*/
            for(int t=0;t<CantPorPeriodo.size();t++){

            for(int k=0; k<Aux1.size();k++){
            if((((ArrayList)CantPorPeriodo.get(t)).get(0)).toString().replace(" ", "").trim().equals((((ArrayList)Aux1.get(k)).get(0)).toString().replace(" ", "").trim())){

            ((ArrayList)CantPorPeriodo.get(t)).set(1,(((ArrayList)Aux1.get(k)).get(1)).toString().replace(" ", "").trim());
            ((ArrayList)CantPorPeriodo.get(t)).set(2,(((ArrayList)Aux1.get(k)).get(2)).toString().replace(" ", "").trim());
            }
            }
            }
            /**********************************************************/
             progressBar.setValue(30);
            /*Crea Grafico de Periodos y llena tabla*/
            DefaultPieDataset datasetPeriodos = new DefaultPieDataset();
            for(int i=0;i<CantPorPeriodo.size();i++){

            datasetPeriodos.setValue(((ArrayList)CantPorPeriodo.get(i)).get(0).toString(), Integer.parseInt(((ArrayList)CantPorPeriodo.get(i)).get(1).toString()));

            }
            JFreeChart ChartporPeriodo = ChartFactory.createPieChart("Reprobación por Periodo",datasetPeriodos, true,true, true);
            BufferedImage image = ChartporPeriodo.createBufferedImage(630,244);
            ImageIcon im = new ImageIcon(image);
            LabelGraficoRprPeriodo.setIcon(im);
            PanelPrincipalReprobacion.add(LabelGraficoRprPeriodo);
            PanelPrincipalReprobacion.updateUI();
            PanelPrincipalReprobacion.repaint();
            int i,cont=0;
            DefaultTableModel modelo = new DefaultTableModel();
            modelo.setRowCount(0);
            modelo.addColumn("Periodo");
            modelo.addColumn("Cantidad");
            modelo.addColumn("Total Inscritos");

            for(i=0; i<CantPorPeriodo.size();i++ ){
            TablaRprPeriodo.setModel(modelo);
            Object nuevo[] = {"","",""};
            modelo.addRow(nuevo);
            TablaRprPeriodo.setValueAt(((ArrayList)CantPorPeriodo.get(i)).get(0),cont,0);
            TablaRprPeriodo.setValueAt(((ArrayList)CantPorPeriodo.get(i)).get(1),cont,1);
            TablaRprPeriodo.setValueAt(((ArrayList)CantPorPeriodo.get(i)).get(2),cont,2);
            cont++;

            }
            /******************FIN Crea Grafico de Periodos y llena tabla****************************/
             progressBar.setValue(55);
            /*****OBTIENE PORCENTAJES POR ASIGNATURA*******/
            ArrayList CantPorAsignatura;
            CantPorAsignatura=Reprobacion.porAsignaturas(UrlFuente,UrlMalla, DesdeAux, HastaAux, CantPeriodos);
            DefaultCategoryDataset datasetPeriodos2 = new DefaultCategoryDataset();

            for(int w=0;w<CantPorAsignatura.size();w++){
            DatasetGroup grupo = new DatasetGroup(((ArrayList)CantPorAsignatura.get(w)).get(3).toString());
            datasetPeriodos2.setGroup(grupo);
            int Reprobados = Integer.parseInt(((ArrayList)CantPorAsignatura.get(w)).get(1).toString());
            int Total=Integer.parseInt(((ArrayList)CantPorAsignatura.get(w)).get(2).toString());
            datasetPeriodos2.setValue(Reprobados,"Nivel de Reprobacion",((ArrayList)CantPorAsignatura.get(w)).get(3).toString());
            datasetPeriodos2.setValue(Total-Reprobados,"Total de Inscritos",((ArrayList)CantPorAsignatura.get(w)).get(3).toString());

            }

            JFreeChart ChartporAsignatura = ChartFactory.createStackedBarChart("Reprobación por Asignaturas","Asignaturas", "Nivel de Reprobacion", datasetPeriodos2, PlotOrientation.HORIZONTAL, true,true, true);

            ChartporAsignatura.getTitle().setPaint(Color.blue);
            CategoryPlot p = ChartporAsignatura.getCategoryPlot();
            p.setRangeGridlinePaint(Color.red);
            BufferedImage image2 = ChartporAsignatura.createBufferedImage(800,600);
            ImageIcon im2 = new ImageIcon(image2);
            LabelGraficoRprAsig.setIcon(im2);
            PanelPrincipalReprobacion.add(LabelGraficoRprAsig);
            PanelPrincipalReprobacion.updateUI();
            PanelPrincipalReprobacion.repaint();

            int cont2=0;
            DefaultTableModel modelo2 = new DefaultTableModel();
            modelo2.setRowCount(0);
            modelo2.addColumn("Asignatura");
            modelo2.addColumn("Cantidad");
            modelo2.addColumn("Total Inscritos");

            for(i=0; i<CantPorAsignatura.size();i++ ){
            TablaRprAsignatura.setModel(modelo2);
            Object nuevo[] = {"",""};
            modelo2.addRow(nuevo);
            TablaRprAsignatura.setValueAt(((ArrayList)CantPorAsignatura.get(i)).get(3),cont2,0);
            TablaRprAsignatura.setValueAt(((ArrayList)CantPorAsignatura.get(i)).get(1),cont2,1);
            TablaRprAsignatura.setValueAt(((ArrayList)CantPorAsignatura.get(i)).get(2),cont2,2);
            cont2++;

            }

            /*****FIN OBTIENE PORCENTAJES POR ASIGNATURA*****/
             progressBar.setValue(60);
            /****OBTIENE PORCENTAJES POR PROFESOR******/

            ArrayList CantPorProfesor;
            CantPorProfesor=Reprobacion.porProfesor(UrlFuente, DesdeAux, HastaAux, CantPeriodos);
            DefaultCategoryDataset datasetPeriodos3 = new DefaultCategoryDataset();

            for(int s=0;s<CantPorProfesor.size();s++){
            DatasetGroup grupo1 = new DatasetGroup(((ArrayList)CantPorProfesor.get(s)).get(0).toString());
            datasetPeriodos3.setGroup(grupo1);
            int ReprobadosConProfe =Integer.parseInt(((ArrayList)CantPorProfesor.get(s)).get(1).toString());
            int TotalProfe=(Integer.parseInt(((ArrayList)CantPorProfesor.get(s)).get(2).toString()));
            datasetPeriodos3.setValue(ReprobadosConProfe,"Nivel de Reprobacion",((ArrayList)CantPorProfesor.get(s)).get(0).toString());
            datasetPeriodos3.setValue(TotalProfe-ReprobadosConProfe,"Total de Inscritos",((ArrayList)CantPorProfesor.get(s)).get(0).toString());


            }
            JFreeChart ChartporProfesor = ChartFactory.createStackedBarChart("Reprobación por Profesor","Profesor", "Nivel de Reprobacion", datasetPeriodos3, PlotOrientation.HORIZONTAL, true,true, true);

            ChartporProfesor.getTitle().setPaint(Color.blue);
            CategoryPlot p3 = ChartporProfesor.getCategoryPlot();
            p3.setRangeGridlinePaint(Color.red);
            BufferedImage image3 = ChartporProfesor.createBufferedImage(800,1170);
            ImageIcon im3 = new ImageIcon(image3);
            LabelGraficoRprProfesor.setIcon(im3);
            PanelPrincipalReprobacion.add(LabelGraficoRprProfesor);
            PanelPrincipalReprobacion.updateUI();
            PanelPrincipalReprobacion.repaint();

            int cont3=0;
            DefaultTableModel modelo3 = new DefaultTableModel();
            modelo3.setRowCount(0);
            modelo3.addColumn("Profesor");
            modelo3.addColumn("Cantidad");
            modelo3.addColumn("Total de Inscritos");

            for(i=0; i<CantPorProfesor.size();i++ ){
            TablaRprProfesor.setModel(modelo3);
            Object nuevo[] = {"",""};
            modelo3.addRow(nuevo);
            TablaRprProfesor.setValueAt(((ArrayList)CantPorProfesor.get(i)).get(0),cont3,0);
            TablaRprProfesor.setValueAt(((ArrayList)CantPorProfesor.get(i)).get(1),cont3,1);
            TablaRprProfesor.setValueAt(((ArrayList)CantPorProfesor.get(i)).get(2),cont3,2);
            cont3++;
            }
            /***FIN obtiene porcentajes por profesor***/

             progressBar.setValue(80);
            /********OBTIENE PORCENTAJES POR AREA DE CONOCIMIENTO *********/

            ArrayList CantAreaConoc = new  ArrayList();
            CantAreaConoc = Reprobacion.porPorAreaDeConoc(UrlMalla, UrlFuente, DesdeAux, HastaAux, CantPeriodos);

            DefaultCategoryDataset datasetPeriodos4 = new DefaultCategoryDataset();

            for(int y=0;y<CantAreaConoc.size();y++){
            DatasetGroup grupo2 = new DatasetGroup(((ArrayList)CantAreaConoc.get(y)).get(0).toString());
            datasetPeriodos3.setGroup(grupo2);
            int ReprobadosPorAreaConoc =Integer.parseInt(((ArrayList)CantAreaConoc.get(y)).get(1).toString());
            int TotalAreaConoc=(Integer.parseInt(((ArrayList)CantAreaConoc.get(y)).get(2).toString()));
            datasetPeriodos4.setValue(ReprobadosPorAreaConoc,"Nivel de Reprobacion",((ArrayList)CantAreaConoc.get(y)).get(0).toString());
            datasetPeriodos4.setValue(TotalAreaConoc-ReprobadosPorAreaConoc,"Total de Inscripciones",((ArrayList)CantAreaConoc.get(y)).get(0).toString());


            }
            JFreeChart ChartPorAreaConoc= ChartFactory.createStackedBarChart("Reprobación por Área de Conocimiento","Area de Conocimiento", "Nivel de Reprobacion", datasetPeriodos4, PlotOrientation.HORIZONTAL, true,true, true);

            ChartPorAreaConoc.getTitle().setPaint(Color.blue);
            CategoryPlot p4 = ChartPorAreaConoc.getCategoryPlot();
            p4.setRangeGridlinePaint(Color.red);
            BufferedImage image4 = ChartPorAreaConoc.createBufferedImage(800,600);
            ImageIcon im4 = new ImageIcon(image4);
            LabelGraficoRprAreaConocimiento.setIcon(im4);
            PanelPrincipalReprobacion.add(LabelGraficoRprAreaConocimiento);
            PanelPrincipalReprobacion.updateUI();
            PanelPrincipalReprobacion.repaint();

            int cont4=0;
            DefaultTableModel modelo4 = new DefaultTableModel();
            modelo4.setRowCount(0);
            modelo4.addColumn("Area De Conocimiento");
            modelo4.addColumn("Cantidad");

            modelo4.addColumn("Total de Inscripciones");
             progressBar.setValue(90);
            for(i=0; i<CantAreaConoc.size();i++ ){
            TablaRprAreaDeConocimiento.setModel(modelo4);
            Object nuevo[] = {"",""};
            modelo4.addRow(nuevo);
            TablaRprAreaDeConocimiento.setValueAt(((ArrayList)CantAreaConoc.get(i)).get(0),cont4,0);
            TablaRprAreaDeConocimiento.setValueAt(((ArrayList)CantAreaConoc.get(i)).get(1),cont4,1);
            TablaRprAreaDeConocimiento.setValueAt(((ArrayList)CantAreaConoc.get(i)).get(2),cont4,2);
            cont4++;
            }
            progressBar.setValue(99);
            /*******FIN DE OBTENCION DE PORCENTAJES POR AREA DE CONOCIMIENTO*********/
            ReprobacionGenerada=true;
            progressBar.setVisible(true);
            progressBar.setValue(100);
            statusMessageLabel.setText("Terminado!");
            JOptionPane.showMessageDialog(null, "Generé Reprobación");
            progressBar.setVisible(false);
            statusMessageLabel.setText("");
            return null;  // return your result
        }
        @Override protected void succeeded(Object result) {
            // Runs on the EDT.  Update the GUI based on
            // the result computed by doInBackground().
        }
    }


@Action
public Task ReporteRenuncia() throws IOException, NoSuchFieldException{
        return new ReporteRenunciaTask(getApplication());
            /***FIN obtiene porcentajes por profesor***/
}
private class ReporteRenunciaTask extends org.jdesktop.application.Task<Object, Void> {
        ReporteRenunciaTask(org.jdesktop.application.Application app) {
            // Runs on the EDT.  Copy GUI state that
            // doInBackground() depends on from parameters
            // to ReporteRenunciaTask fields, here.
            super(app);

        }
        @Override protected Object doInBackground() throws FileNotFoundException, IOException, NoSuchFieldException {
            statusMessageLabel.setText("Generando Reporte de Renuncia de Asignaturas...");
            progressBar.setValue(0);
            RenunciaGenerada=true;
            boolean puedoSeguir= true;
            puedoSeguir=ValidaPeticion();
            if(!puedoSeguir){
            return null;
            }
            Double DesdeAux, HastaAux;
            //valida periodo de estudio, si se encuentra dentro del parámetro
            DesdeAux=Double.parseDouble(Ano_Desde.getText());
            if(Periodo_Desde.getText().equals("2"))DesdeAux=DesdeAux+0.5;
            HastaAux=Double.parseDouble(Ano_Hasta.getText());
            if(Periodo_Hasta.getText().equals("2"))HastaAux=HastaAux+0.5;

            /*-------Obtiene POrcentaje de Aprobación de Periodo Solicitado por Usuario------*/
            Integer porcentRen;
            Renuncia RepRen=new Renuncia();
            porcentRen=RepRen.porcentajeRenuncia(UrlFuente, DesdeAux, HastaAux).intValue();
            PorcentRenReport.setText(porcentRen.toString());

            /*-------------------------------------------------------*/
            progressBar.setValue(10);
            /*--Setea Total de AsignaturasGeneranPerdida en reporte de Aprobacion---*/

            TotalAsignaturasInscritasRen.setText(String.valueOf(Renuncia.TotalDeAsignaturas(UrlFuente, DesdeAux, HastaAux)));

            /*--------------------------------------------------------*/

            /*---------Obtiene Porcentajes por Periodo-----------*/
            //para saber cuantos periodos comprenden el intervalo ingresado por el usuario.
            int CantPeriodos=0;
            CantPeriodos=(int) (IntervaloPeriodoHasta-IntervaloPeriodoDesde);
            if(Regimen.getSelectedItem().toString().equals("Semestral"))// consulta si es semestral
            CantPeriodos=CantPeriodos*2+1;
            //si es anual, queda igual.
            ArrayList Aux1 = Renuncia.porPeriodo(UrlFuente, DesdeAux, HastaAux, CantPeriodos);

            /*crea arreglo con periodos y cantidades  [pppp-p,cant] inicializadas en cero*/
            ArrayList CantPorPeriodo=new ArrayList();
            Double desde=DesdeAux;

            //llena arreglo inicializado en cero
            for(int i=0; i<=CantPeriodos && desde<=HastaAux;i++){

            if(Regimen.getSelectedItem().toString().equals("Semestral")){
            String pDesde= String.valueOf(desde.intValue());//captura primer periodo
            if(desde%1==0) pDesde= pDesde+"-1";
            if(desde%1!=0) pDesde= pDesde+"-2";
            CantPorPeriodo.add(new ArrayList());
            ((ArrayList)CantPorPeriodo.get(i)).add(pDesde);
            ((ArrayList)CantPorPeriodo.get(i)).add((int)0);
            desde=desde+0.5;
            }else{
            String pDesde= String.valueOf(desde.intValue());//captura primer periodo
            if(desde%1==0) pDesde= pDesde+"- 1";
            if(desde%1!=0) pDesde= pDesde+"- 2";
            CantPorPeriodo.add(new ArrayList());
            ((ArrayList)CantPorPeriodo.get(i)).add(pDesde);
            ((ArrayList)CantPorPeriodo.get(i)).add((int)0);
            desde=desde+1.0;
            }
            }
            /*****************************************************************************/
            /*Llena Arrglo de Aprobacion por Periodo con Valore Válidos*/
            for(int t=0;t<CantPorPeriodo.size();t++){

            for(int k=0; k<Aux1.size();k++){
            if((((ArrayList)CantPorPeriodo.get(t)).get(0)).toString().replace(" ", "").trim().equals((((ArrayList)Aux1.get(k)).get(0)).toString().replace(" ", "").trim())){

            ((ArrayList)CantPorPeriodo.get(t)).set(1,(((ArrayList)Aux1.get(k)).get(1)).toString().replace(" ", "").trim());

            }
            }
            }

            /**********************************************************/

            /*Crea Grafico de Periodos y llena tabla*/
            DefaultPieDataset datasetPeriodos = new DefaultPieDataset();
            for(int i=0;i<CantPorPeriodo.size();i++){

            datasetPeriodos.setValue(((ArrayList)CantPorPeriodo.get(i)).get(0).toString(), Integer.parseInt(((ArrayList)CantPorPeriodo.get(i)).get(1).toString()));

            }
            JFreeChart ChartporPeriodo = ChartFactory.createPieChart("Renuncia por Periodos",datasetPeriodos, true,true, true);
            BufferedImage image = ChartporPeriodo.createBufferedImage(750,244);
            ImageIcon im = new ImageIcon(image);
            LabelGraficoRenPeriodo.setIcon(im);
            PanelPrincipalRenuncia.add(LabelGraficoRenPeriodo);
            PanelPrincipalRenuncia.updateUI();
            PanelPrincipalRenuncia.repaint();
            int i,cont=0;
            DefaultTableModel modelo = new DefaultTableModel();
            modelo.setRowCount(0);
            modelo.addColumn("Periodo");
            modelo.addColumn("Cantidad");

            for(i=0; i<CantPorPeriodo.size();i++ ){
            TablaRenPeriodo.setModel(modelo);
            Object nuevo[] = {"",""};
            modelo.addRow(nuevo);
            TablaRenPeriodo.setValueAt(((ArrayList)CantPorPeriodo.get(i)).get(0),cont,0);
            TablaRenPeriodo.setValueAt(((ArrayList)CantPorPeriodo.get(i)).get(1),cont,1);
            cont++;

            }
            /******************FIN Crea Grafico de Periodos y llena tabla****************************/
            progressBar.setValue(30);
            /*****OBTIENE PORCENTAJES POR ASIGNATURA*******/
            ArrayList CantPorAsignatura;
            CantPorAsignatura=Renuncia.porAsignaturas(UrlFuente,UrlMalla, DesdeAux, HastaAux, CantPeriodos);
            DefaultCategoryDataset datasetPeriodos2 = new DefaultCategoryDataset();
            for(int w=0;w<CantPorAsignatura.size();w++){

            datasetPeriodos2.setValue(Integer.parseInt(((ArrayList)CantPorAsignatura.get(w)).get(1).toString()),"Nivel de Renuncias",((ArrayList)CantPorAsignatura.get(w)).get(3).toString());

            }
            JFreeChart ChartporAsignatura = ChartFactory.createBarChart("Renuncia por Asignaturas","Asignaturas", "Nivel de Renuncias", datasetPeriodos2, PlotOrientation.HORIZONTAL, true,true, true);

            ChartporAsignatura.getTitle().setPaint(Color.blue);
            CategoryPlot p = ChartporAsignatura.getCategoryPlot();
            p.setRangeGridlinePaint(Color.red);
            BufferedImage image2 = ChartporAsignatura.createBufferedImage(800,750);
            ImageIcon im2 = new ImageIcon(image2);
            LabelGraficoRenAsig.setIcon(im2);
            PanelPrincipalRenuncia.add(LabelGraficoRenAsig);
            PanelPrincipalRenuncia.updateUI();
            PanelPrincipalRenuncia.repaint();

            int cont2=0;
            DefaultTableModel modelo2 = new DefaultTableModel();
            modelo2.setRowCount(0);
            modelo2.addColumn("Asignatura");
            modelo2.addColumn("Cantidad");

            for(i=0; i<CantPorAsignatura.size();i++ ){
            TablaRenAsignatura.setModel(modelo2);
            Object nuevo[] = {"",""};
            modelo2.addRow(nuevo);
            TablaRenAsignatura.setValueAt(((ArrayList)CantPorAsignatura.get(i)).get(3),cont2,0);
            TablaRenAsignatura.setValueAt(((ArrayList)CantPorAsignatura.get(i)).get(1),cont2,1);
            cont2++;

            }

            /*****FIN OBTIENE PORCENTAJES POR ASIGNATURA*****/
            progressBar.setValue(50);
            /****OBTIENE PORCENTAJES POR PROFESOR******/

            ArrayList CantPorProfesor;
            CantPorProfesor=Renuncia.porProfesor(UrlFuente, DesdeAux, HastaAux, CantPeriodos);
            DefaultCategoryDataset datasetPeriodos3 = new DefaultCategoryDataset();
            for(int s=0;s<CantPorProfesor.size();s++){

            datasetPeriodos3.setValue(Integer.parseInt(((ArrayList)CantPorProfesor.get(s)).get(1).toString()),"Nivel de Renuncia",((ArrayList)CantPorProfesor.get(s)).get(0).toString());

            }
            JFreeChart ChartporProfesor = ChartFactory.createBarChart("Renuncias por Profesor","Profesor", "Nivel de Renuncia", datasetPeriodos3, PlotOrientation.HORIZONTAL, true,true, true);

            ChartporProfesor.getTitle().setPaint(Color.blue);
            CategoryPlot p3 = ChartporProfesor.getCategoryPlot();
            p3.setRangeGridlinePaint(Color.red);
            BufferedImage image3 = ChartporProfesor.createBufferedImage(800,1100);
            ImageIcon im3 = new ImageIcon(image3);
            LabelGraficoRenProfesor.setIcon(im3);
            PanelPrincipalRenuncia.add(LabelGraficoRenProfesor);
            PanelPrincipalRenuncia.updateUI();
            PanelPrincipalRenuncia.repaint();

            int cont3=0;
            DefaultTableModel modelo3 = new DefaultTableModel();
            modelo3.setRowCount(0);
            modelo3.addColumn("Profesor");
            modelo3.addColumn("Cantidad");

            for(i=0; i<CantPorProfesor.size();i++ ){
            TablaRenProfesor.setModel(modelo3);
            Object nuevo[] = {"",""};
            modelo3.addRow(nuevo);
            TablaRenProfesor.setValueAt(((ArrayList)CantPorProfesor.get(i)).get(0),cont3,0);
            TablaRenProfesor.setValueAt(((ArrayList)CantPorProfesor.get(i)).get(1),cont3,1);
            cont3++;
            }
            /********OBTIENE PORCENTAJES POR AREA DE CONOCIMIENTO *********/
            progressBar.setValue(70);
            ArrayList CantAreaConoc = new  ArrayList();
            CantAreaConoc = Renuncia.porPorAreaDeConoc(UrlMalla, UrlFuente, DesdeAux, HastaAux, CantPeriodos);

            DefaultCategoryDataset datasetPeriodos4 = new DefaultCategoryDataset();

            for(int y=0;y<CantAreaConoc.size();y++){
            DatasetGroup grupo2 = new DatasetGroup(((ArrayList)CantAreaConoc.get(y)).get(0).toString());
            datasetPeriodos3.setGroup(grupo2);
            int RenunciadosPorAreaConoc =Integer.parseInt(((ArrayList)CantAreaConoc.get(y)).get(1).toString());

            datasetPeriodos4.setValue(RenunciadosPorAreaConoc,"Nivel de Renuncia",((ArrayList)CantAreaConoc.get(y)).get(0).toString());



            }
            JFreeChart ChartPorAreaConoc= ChartFactory.createStackedBarChart("Renuncias por Áreas de Conocimiento","Area de Conocimiento", "Nivel de Renuncia", datasetPeriodos4, PlotOrientation.HORIZONTAL, true,true, true);

            ChartPorAreaConoc.getTitle().setPaint(Color.blue);
            CategoryPlot p4 = ChartPorAreaConoc.getCategoryPlot();
            p4.setRangeGridlinePaint(Color.red);
            BufferedImage image4 = ChartPorAreaConoc.createBufferedImage(800,600);
            ImageIcon im4 = new ImageIcon(image4);
            LabelGraficoRenAreaConocimiento.setIcon(im4);
            PanelPrincipalRenuncia.add(LabelGraficoRenAreaConocimiento);
            PanelPrincipalRenuncia.updateUI();
            PanelPrincipalRenuncia.repaint();
            progressBar.setValue(80);
            int cont4=0;
            DefaultTableModel modelo4 = new DefaultTableModel();
            modelo4.setRowCount(0);
            modelo4.addColumn("Area De Conocimiento");
            modelo4.addColumn("Cantidad");

            for(i=0; i<CantAreaConoc.size();i++ ){
            TablaRenAreaDeConocimiento.setModel(modelo4);
            Object nuevo[] = {"",""};
            modelo4.addRow(nuevo);
            TablaRenAreaDeConocimiento.setValueAt(((ArrayList)CantAreaConoc.get(i)).get(0),cont4,0);
            TablaRenAreaDeConocimiento.setValueAt(((ArrayList)CantAreaConoc.get(i)).get(1),cont4,1);
            cont4++;
            }
            /*******FIN DE OBTENCION DE PORCENTAJES POR AREA DE CONOCIMIENTO*********/
            progressBar.setValue(99);
            progressBar.setVisible(true);
            progressBar.setValue(100);
            statusMessageLabel.setText("Terminado!");
            JOptionPane.showMessageDialog(null, "Generé Renuncia");
            progressBar.setVisible(false);
            statusMessageLabel.setText("");
            /***FIN obtiene porcentajes por profesor***/
            return null;  // return your result
        }
        @Override protected void succeeded(Object result) {
            // Runs on the EDT.  Update the GUI based on
            // the result computed by doInBackground().
        }
    }


@Action
public Task ReporteCausalesEliminacion() throws IOException, FileNotFoundException, NoSuchFieldException{
        return new ReporteCausalesEliminacionTask(getApplication());
        
    }
private class ReporteCausalesEliminacionTask extends org.jdesktop.application.Task<Object, Void> {
        ReporteCausalesEliminacionTask(org.jdesktop.application.Application app) {
            // Runs on the EDT.  Copy GUI state that
            // doInBackground() depends on from parameters
            // to ReporteCausalesEliminacionTask fields, here.
            super(app);



        }
        @Override protected Object doInBackground() throws IOException, FileNotFoundException, NoSuchFieldException {
            statusMessageLabel.setText("Generando Reporte de Eliminación Académica...");
            progressBar.setValue(0);
            boolean puedoSeguir= true;
            puedoSeguir=ValidaPeticion();
            if(!puedoSeguir){
            return null;
            }

            Double DesdeAux, HastaAux;
            //valida periodo de estudio, si se encuentra dentro del parámetro
            DesdeAux=Double.parseDouble(Ano_Desde.getText());
            if(Periodo_Desde.getText().equals("2"))DesdeAux=DesdeAux+0.5;
            HastaAux=Double.parseDouble(Ano_Hasta.getText());
            if(Periodo_Hasta.getText().equals("2"))HastaAux=HastaAux+0.5;

            int TotalConPerdida;
            ArrayList Instancias = new ArrayList();
            Instancias=Eliminacion.InstanciasDeReprobacion(UrlFuente, DesdeAux, HastaAux);
            CeaSegundaInstancia.setText(Instancias.get(0).toString());
            CeaMasDeSegundaInstancia.setText(Instancias.get(1).toString());
            CeaBajoCredito.setText(String.valueOf(Eliminacion.porCantidadDeCreditos(UrlFuente,DesdeAux, HastaAux)));
            CeaAusentismo.setText(String.valueOf(Eliminacion.perdidaPorAusentismo(UrlFuente, DesdeAux, HastaAux)));
            //          Captura Total de Perdidas de Carrera.
            TotalConPerdida = Integer.parseInt(CeaAusentismo.getText())+ Integer.parseInt(CeaMasDeSegundaInstancia.getText())+Integer.parseInt(CeaBajoCredito.getText())+Integer.parseInt(CeaSegundaInstancia.getText());
            CantPerdidasCea.setText(String.valueOf(TotalConPerdida));
            TotalAsigInscritasCea.setText(String.valueOf(Eliminacion.devuelveTotalInscripciones()).toString());
            CantAlumnInscrCea.setText(String.valueOf(Eliminacion.RutsEnPeriodo.size()));
            progressBar.setValue(20);


            /***SETEA VALORES PRINCIPALES DE FIELDS SUPERIORES****/
            DefaultPieDataset datasetPeriodos = new DefaultPieDataset();
            datasetPeriodos.setValue("Perdida De Carrera por Ausentismo", Integer.parseInt(CeaAusentismo.getText()));
            datasetPeriodos.setValue("Perdida De Carrera por Bajo Credito", Integer.parseInt(CeaBajoCredito.getText()));
            datasetPeriodos.setValue("Perdida De Carrera por Reprobación de Asignatura en 2ª Instancia", Integer.parseInt(CeaSegundaInstancia.getText()));
            datasetPeriodos.setValue("Perdida De Carrera por Reprobacion de Asignatura por Más de Segunda Instancia", Integer.parseInt(CeaMasDeSegundaInstancia.getText()));
            JFreeChart ChartporPeriodo = ChartFactory.createPieChart(null,datasetPeriodos, true,true, false);
            BufferedImage image = ChartporPeriodo.createBufferedImage(800,300);
            ImageIcon im = new ImageIcon(image);
            GraficoCeaCausales.setIcon(im);
            PanelPrincipalEliminacion.add(GraficoCeaCausales);
            PanelPrincipalEliminacion.updateUI();
            PanelPrincipalEliminacion.repaint();
            /****FIN SETEO DE FIELDS SUPERIORES****/
            progressBar.setValue(50);
            /****POR ASIGNATURA****/
            ArrayList porAsignatura= Eliminacion.porAsignatura();
            DefaultCategoryDataset datasetPeriodos2 = new DefaultCategoryDataset();
            for(int w=0;w<porAsignatura.size();w++){

            datasetPeriodos2.setValue(Integer.parseInt(((ArrayList)porAsignatura.get(w)).get(2).toString()),"Cantidad de Caulsales de Eliminación",((ArrayList)porAsignatura.get(w)).get(1).toString());

            }
            JFreeChart ChartporAsignatura = ChartFactory.createBarChart("Causales de Eliminación","Asignaturas", "Cantidad de Caulsales de Eliminación", datasetPeriodos2, PlotOrientation.HORIZONTAL, true,true, true);

            ChartporAsignatura.getTitle().setPaint(Color.blue);
            CategoryPlot p = ChartporAsignatura.getCategoryPlot();
            p.setRangeGridlinePaint(Color.red);
            BufferedImage image2 = ChartporAsignatura.createBufferedImage(800,600);
            ImageIcon im2 = new ImageIcon(image2);
            LabelGraficoCeaAsignatura.setIcon(im2);
            PanelPrincipalEliminacion.add(LabelGraficoCeaAsignatura);
            PanelPrincipalEliminacion.updateUI();
            PanelPrincipalEliminacion.repaint();

            int cont2=0;
            DefaultTableModel modelo2 = new DefaultTableModel();
            modelo2.setRowCount(0);
            modelo2.addColumn("Codigo Asignatura");
            modelo2.addColumn("Cantidad");

            for(int i=0; i<porAsignatura.size();i++ ){
            TablaCeaAsignatura.setModel(modelo2);
            Object nuevo[] = {"",""};
            modelo2.addRow(nuevo);
            TablaCeaAsignatura.setValueAt(((ArrayList)porAsignatura.get(i)).get(1).toString(),cont2,0);
            TablaCeaAsignatura.setValueAt(((ArrayList)porAsignatura.get(i)).get(2),cont2,1);
            cont2++;

            }

            /****FIN POR ASIGNATURA****/
            progressBar.setValue(75);
            /******POR AREA DE CONOCIMENTO*********/
            ArrayList porAreaDeConocimiento = Eliminacion.porAreaConocimiento(UrlMalla);
            DefaultCategoryDataset datasetPeriodos3 = new DefaultCategoryDataset();
            for(int w=0;w<porAreaDeConocimiento.size();w++){

            datasetPeriodos3.setValue(Integer.parseInt(((ArrayList)porAreaDeConocimiento.get(w)).get(1).toString()),"Causal de Perdida de Carrera",((ArrayList)porAreaDeConocimiento.get(w)).get(0).toString());

            }
            JFreeChart ChartporAreaDeConocimiento = ChartFactory.createBarChart("","Asignaturas", "Causal de Perdida de Carrera", datasetPeriodos3, PlotOrientation.HORIZONTAL, true,true, true);

            ChartporAreaDeConocimiento.getTitle().setPaint(Color.blue);
            CategoryPlot p3 = ChartporAreaDeConocimiento.getCategoryPlot();
            p3.setRangeGridlinePaint(Color.red);
            BufferedImage image3 = ChartporAreaDeConocimiento.createBufferedImage(800,600);
            ImageIcon im3 = new ImageIcon(image3);
            LabelGraficoCeaAreaConocimiento.setIcon(im3);
            PanelPrincipalEliminacion.add(LabelGraficoCeaAreaConocimiento);
            PanelPrincipalEliminacion.updateUI();
            PanelPrincipalEliminacion.repaint();

            int cont3=0;
            DefaultTableModel modelo3 = new DefaultTableModel();
            modelo3.setRowCount(0);
            modelo3.addColumn("Area De Conocimiento");
            modelo3.addColumn("Cantidad");

            for(int i=0; i<porAreaDeConocimiento.size();i++ ){
            TablaCeaAreaDeConocimiento.setModel(modelo3);
            Object nuevo[] = {"",""};
            modelo3.addRow(nuevo);
            TablaCeaAreaDeConocimiento.setValueAt(((ArrayList)porAreaDeConocimiento.get(i)).get(0),cont3,0);
            TablaCeaAreaDeConocimiento.setValueAt(((ArrayList)porAreaDeConocimiento.get(i)).get(1),cont3,1);
            cont3++;

            }
            /******FIN POR AREA DE CONOCIMIENTO*****/
            /******POR PERIODO********/
            ArrayList porPeriodo = new ArrayList();
            porPeriodo= Eliminacion.porPeriodo();
            DefaultCategoryDataset datasetPeriodos4 = new DefaultCategoryDataset();
            for(int w=0;w<porPeriodo.size();w++){

            datasetPeriodos4.setValue(Integer.parseInt(((ArrayList)porPeriodo.get(w)).get(1).toString()),"Causales de Perdida de Carrera",((ArrayList)porPeriodo.get(w)).get(0).toString());

            }
            JFreeChart ChartPeriodo = ChartFactory.createBarChart("","Periodos", "Causales de Perdida de Carrera", datasetPeriodos4, PlotOrientation.HORIZONTAL, true,true, true);
            progressBar.setValue(80);
            ChartPeriodo.getTitle().setPaint(Color.blue);
            CategoryPlot p4 = ChartPeriodo.getCategoryPlot();
            p4.setRangeGridlinePaint(Color.red);
            BufferedImage image4 = ChartPeriodo.createBufferedImage(800,600);
            ImageIcon im4 = new ImageIcon(image4);
            LabelGraficoCeaPeriodo.setIcon(im4);
            PanelPrincipalEliminacion.add(LabelGraficoCeaPeriodo);
            PanelPrincipalEliminacion.updateUI();
            PanelPrincipalEliminacion.repaint();

            int cont4=0;
            DefaultTableModel modelo4 = new DefaultTableModel();
            modelo4.setRowCount(0);
            modelo4.addColumn("Periodo");
            modelo4.addColumn("Cantidad");

            for(int i=0; i<porPeriodo.size();i++ ){
            TablaCeaPeriodo.setModel(modelo4);
            Object nuevo[] = {"",""};
            modelo4.addRow(nuevo);
            TablaCeaPeriodo.setValueAt(((ArrayList)porPeriodo.get(i)).get(0),cont4,0);
            TablaCeaPeriodo.setValueAt(((ArrayList)porPeriodo.get(i)).get(1),cont4,1);
            cont4++;

            }
            /****FIN POR PERIODO******/
            progressBar.setValue(99);
            progressBar.setVisible(true);
            progressBar.setValue(100);
            statusMessageLabel.setText("Terminado!");
            EliminacionGenerada=true;
            JOptionPane.showMessageDialog(null, "Generé Análisis de Eliminación");
            progressBar.setVisible(false);
            statusMessageLabel.setText("");
            return null;  // return your result
        }
        @Override protected void succeeded(Object result) {
            // Runs on the EDT.  Update the GUI based on
            // the result computed by doInBackground().
        }
    }

@Action
public Task ReportePyRT() throws IOException, FileNotFoundException,NoSuchFieldException, InterruptedException{
        return new ReportePyRTTask(getApplication());

}
private class ReportePyRTTask extends org.jdesktop.application.Task<Object, Void> {
        ReportePyRTTask(org.jdesktop.application.Application app) {
            // Runs on the EDT.  Copy GUI state that
            // doInBackground() depends on from parameters
            // to ReportePyRTTask fields, here.
            super(app);

        }
        @Override protected Object doInBackground() throws IOException, FileNotFoundException, NoSuchFieldException {
            statusMessageLabel.setText("Generando Reporte de Permanencia y Retiros Temporales...");
            progressBar.setValue(0);
            boolean puedoSeguir= true;
            puedoSeguir=ValidaPeticion();
            if(!puedoSeguir){
            return null;
            }


            Double DesdeAux, HastaAux;
            //valida periodo de estudio, si se encuentra dentro del parámetro
            DesdeAux=Double.parseDouble(Ano_Desde.getText());
            if(Periodo_Desde.getText().equals("2"))DesdeAux=DesdeAux+0.5;
            HastaAux=Double.parseDouble(Ano_Hasta.getText());
            if(Periodo_Hasta.getText().equals("2"))HastaAux=HastaAux+0.5;

            /*RETIROS TEMPORALES*/
            ArrayList Ausentismo= PyRT.perdidaPorAusentismo(UrlFuente, DesdeAux, HastaAux);
            Double PorcentajeRT=PyRT.ContRutsRetirados*100/Double.parseDouble(String.valueOf(PyRT.Ruts.size()));
            RT1Semestre.setText(Ausentismo.get(0).toString());
            RT2Semestres.setText(Ausentismo.get(1).toString());
            RT3SemestresAlt.setText(Ausentismo.get(2).toString());
            CantidadAlumnosInscritosPRT.setText(String.valueOf(PyRT.Ruts.size()));
            DecimalFormat fd = new DecimalFormat("0.00");
            NivelRetirosTemporales.setText(String.valueOf(fd.format(PorcentajeRT)));
            progressBar.setValue(10);
            DefaultCategoryDataset datasetRetirosTemporales = new DefaultCategoryDataset();


            datasetRetirosTemporales.setValue(Integer.parseInt(Ausentismo.get(0).toString()), "Retiros Temporales","Retiro Temporal 1 Semestre");
            datasetRetirosTemporales.setValue(Integer.parseInt(Ausentismo.get(1).toString()), "Retiros Temporales","Retiro Temporal 2 Semestres Consecutivos");
            datasetRetirosTemporales.setValue(Integer.parseInt(Ausentismo.get(2).toString()), "Retiros Temporales","Retiro Temporal 3 Semestres Alternativos");


            JFreeChart ChartPeriodo = ChartFactory.createBarChart("Retiros Temporales","Rertiros Temporales", "Cantidad", datasetRetirosTemporales, PlotOrientation.VERTICAL, true,true, true);

            ChartPeriodo.getTitle().setPaint(Color.blue);
            CategoryPlot p4 = ChartPeriodo.getCategoryPlot();
            p4.setRangeGridlinePaint(Color.red);
            BufferedImage image = ChartPeriodo.createBufferedImage(800,300);
            ImageIcon im = new ImageIcon(image);
            LabelGraficoPyRTRetiros.setIcon(im);
            PanelPrincipalPRT.add(LabelGraficoPyRTRetiros);
            PanelPrincipalPRT.updateUI();
            PanelPrincipalPRT.repaint();
            /*FIN RETIROS TEMPORALES*/
            progressBar.setValue(30);
            /*TASA DE RETENCION*/
            ArrayList Retencion = PyRT.Retencion(UrlFuente, DesdeAux, HastaAux, Regimen.getSelectedItem().toString(),Integer.parseInt(DuracionPrograma.getText()));
            DefaultCategoryDataset datasetRetencion = new DefaultCategoryDataset();

            for(int w=0;w<Retencion.size();w++){
            String año= ((ArrayList)Retencion.get(w)).get(0).toString().replace(" ","").trim().substring(0,4);
            String Semestre = ((ArrayList)Retencion.get(w)).get(0).toString().replace(" ","").trim().substring(5);
            if(Semestre.equals("0"))Semestre="-1";
            if(Semestre.equals("5"))Semestre="-2";
            datasetRetencion.setValue(Integer.parseInt(((ArrayList)Retencion.get(w)).get(4).toString().replace(" ", "")),"Tasa de Retención",año+Semestre);

            }
            JFreeChart ChartRetencion = ChartFactory.createBarChart("Tasa de Retención","Tasa Retención", "Nivel de Retención en Periodo", datasetRetencion, PlotOrientation.HORIZONTAL, true,true, true);

            ChartRetencion.getTitle().setPaint(Color.blue);
            CategoryPlot p = ChartRetencion.getCategoryPlot();
            p.setRangeGridlinePaint(Color.red);
            BufferedImage image1 = ChartRetencion.createBufferedImage(950,550);
            ImageIcon im1 = new ImageIcon(image1);
            LabelGraficoRetencionAlumnos.setIcon(im1);
            PanelPrincipalPRT.add(LabelGraficoRetencionAlumnos);
            PanelPrincipalPRT.updateUI();
            PanelPrincipalPRT.repaint();

            int cont=0;
            DefaultTableModel modelo = new DefaultTableModel();
            modelo.setRowCount(0);
            modelo.addColumn("Periodo");
            modelo.addColumn("Inscritos en Periodo");
            modelo.addColumn("Alumnos Primer Año");
            modelo.addColumn("Nivel Retencion (%)");

            for(int i=0; i<Retencion.size();i++ ){
            TablaPyRTRetencion.setModel(modelo);
            Object nuevo[] = {"","","",""};
            progressBar.setValue(45);
            modelo.addRow(nuevo);
            String año= ((ArrayList)Retencion.get(i)).get(0).toString().replace(" ","").trim().substring(0,4);
            String Semestre = ((ArrayList)Retencion.get(i)).get(0).toString().replace(" ","").trim().substring(5);
            if(Semestre.equals("0"))Semestre="-1";
            if(Semestre.equals("5"))Semestre="-2";
            TablaPyRTRetencion.setValueAt(año+Semestre,cont,0);
            TablaPyRTRetencion.setValueAt(((ArrayList)Retencion.get(i)).get(1),cont,1);
            TablaPyRTRetencion.setValueAt(((ArrayList)Retencion.get(i)).get(2),cont,2);
            TablaPyRTRetencion.setValueAt(((ArrayList)Retencion.get(i)).get(4)+"%",cont,3);
            cont++;

            }
            /*FIN TASA RETENCION*/
            progressBar.setValue(50);
            /*TASA TITULACION*/
            ArrayList TasaTitulacion = PyRT.TasaTitulacion(UrlFuente, DesdeAux, HastaAux, Regimen.getSelectedItem().toString(),Integer.parseInt(DuracionPrograma.getText()),TotalCreditosPlan);
            ArrayList Promociones = PyRT.PromocionesContenidas();

            DefaultCategoryDataset datasetTasaTitulacion = new DefaultCategoryDataset();

            for(int x=0;x<Promociones.size();x++){
            for(int t=0; t<TasaTitulacion.size();t++){
            if(((ArrayList)TasaTitulacion.get(t)).get(0).toString().replace(" ","").trim().equals(((ArrayList)Promociones.get(x)).get(0).toString().replace(" ","").trim())){
            String año= ((ArrayList)TasaTitulacion.get(t)).get(1).toString().replace(" ","").trim().substring(0,4);
            String Semestre = ((ArrayList)TasaTitulacion.get(t)).get(1).toString().replace(" ","").trim().substring(5);
            if(Semestre.equals("0"))Semestre="-1";
            if(Semestre.equals("5"))Semestre="-2";
            datasetTasaTitulacion.setValue(Integer.parseInt(((ArrayList)TasaTitulacion.get(t)).get(3).toString().replace(" ", "")),((ArrayList)Promociones.get(x)).get(0).toString().replace(" ", ""),año+Semestre);
            }
            }
            }
            JFreeChart ChartTasaTitulacion = ChartFactory.createBarChart("Tasa de Titulación","Años de Egreso", "Tasa Titulación", datasetTasaTitulacion, PlotOrientation.HORIZONTAL, true,true, true);

            ChartTasaTitulacion.getTitle().setPaint(Color.blue);
            CategoryPlot p2 = ChartTasaTitulacion.getCategoryPlot();
            p2.setRangeGridlinePaint(Color.red);
            BufferedImage image2 = ChartTasaTitulacion.createBufferedImage(950,600);
            ImageIcon im2 = new ImageIcon(image2);
            LabelGraficoTasaTitulacion.setIcon(im2);
            PanelPrincipalPRT.add(LabelGraficoTasaTitulacion);
            PanelPrincipalPRT.updateUI();
            PanelPrincipalPRT.repaint();

            int cont1=0;
            DefaultTableModel modelo1 = new DefaultTableModel();
            modelo1.setRowCount(0);
            modelo1.addColumn("Promoción / Cohorte");
            modelo1.addColumn("Año Egreso");
            modelo1.addColumn("Cantidad de Egresados");
            modelo1.addColumn("Tasa Titulación %");

            for(int i=0; i<TasaTitulacion.size();i++ ){
            TablaTasaTitulacion.setModel(modelo1);
            Object nuevo[] = {"","","",""};

            modelo1.addRow(nuevo);
            String año= ((ArrayList)TasaTitulacion.get(i)).get(0).toString().replace(" ","").trim().substring(0,4);
            String Semestre = ((ArrayList)TasaTitulacion.get(i)).get(0).toString().replace(" ","").trim().substring(5);
            if(Semestre.equals("0"))Semestre="-1";
            if(Semestre.equals("5"))Semestre="-2";
            String año1= ((ArrayList)TasaTitulacion.get(i)).get(1).toString().replace(" ","").trim().substring(0,4);
            String Semestre1 = ((ArrayList)TasaTitulacion.get(i)).get(1).toString().replace(" ","").trim().substring(5);
            if(Semestre1.equals("0"))Semestre1="-1";
            if(Semestre1.equals("5"))Semestre1="-2";
            TablaTasaTitulacion.setValueAt(año+Semestre,cont1,0);
            TablaTasaTitulacion.setValueAt(año1+Semestre1,cont1,1);
            TablaTasaTitulacion.setValueAt(((ArrayList)TasaTitulacion.get(i)).get(2),cont1,2);
            TablaTasaTitulacion.setValueAt(((ArrayList)TasaTitulacion.get(i)).get(3)+"%",cont1,3);
            cont1++;

            }
            /*FIN TASA TITULACION*/
            progressBar.setValue(80);
            /*PROMEDIO DURACION*/

            Double PromedioDuracionCarrera = PyRT.DuracionCarrera(Regimen.getSelectedItem().toString());

            DuracionPlanEstudios.setText(PromedioDuracionCarrera.toString());

            /*FIN DURACION CARRERA*/
            PerrmanenciaGenerada=true;
            progressBar.setValue(99);
            progressBar.setVisible(true);
            progressBar.setValue(100);
            statusMessageLabel.setText("Terminado!");
            JOptionPane.showMessageDialog(null, "Generé Análisis de Permanencia y Retiros Temporales");
            progressBar.setVisible(false);
            statusMessageLabel.setText("");

            return null;  // return your result
        }
        @Override protected void succeeded(Object result) {
            // Runs on the EDT.  Update the GUI based on
            // the result computed by doInBackground().
        }
    }

/*#########################################*/
/*IMPRESIONES*/
/*#########################################*/
@Action
public void ImprimeTodos() throws FileNotFoundException, DocumentException, BadElementException, IOException{
    ImprimeApr();
    ImprimeRpr();
    ImprimeRen();
    ImprimeElim();
    ImprimePyRT();
}
@Action
public void ImprimeApr() throws FileNotFoundException, DocumentException, BadElementException, IOException{

             if(!AprobacionGenerada){
                 JOptionPane.showMessageDialog(null,"Debe generar Reporte de Aprobación para Imprimir","Error",JOptionPane.ERROR_MESSAGE);;
                return;
             }
             JFileChooser chooser = new JFileChooser();
             FileSystemView view = chooser.getFileSystemView();
             Document pdfApr = new Document();
             FileOutputStream archivoPdf = new FileOutputStream(view.getDefaultDirectory()+"/ReporteAprobacion("+CodigoCarrera.getText().toString()+").pdf");
             PdfWriter.getInstance(pdfApr,archivoPdf).setInitialLeading(15);
             pdfApr.open();

             pdfApr.addTitle("Reporte de Aporbación");
             pdfApr.add(new Paragraph("Reporte de Aprobación",
				FontFactory.getFont("arial",   // fuente
				22,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLUE)));             // color

             pdfApr.add(new Paragraph("_____________________________________________________________________________\n\n\n"));
             
             
             /**DATOS GENERALES DE CARRERA**/
             pdfApr.add(new Paragraph("Datos Generales del Plan de Estudios\n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color
              
              PdfPTable TablaDatosGenerales = new PdfPTable(2);
              TablaDatosGenerales.addCell("Nombre Carrera \t");TablaDatosGenerales.addCell(NombreCarrera.getText()+"\n");
              TablaDatosGenerales.addCell("Codigo\t");TablaDatosGenerales.addCell(CodigoCarrera.getText()+"\n");
              TablaDatosGenerales.addCell("Regimen de Estudios\t");TablaDatosGenerales.addCell(Regimen.getSelectedItem().toString()+"\n");
              TablaDatosGenerales.addCell("Institución \t");TablaDatosGenerales.addCell(NombreUniversidad.getText()+"\n");
              TablaDatosGenerales.addCell("Sede \t");TablaDatosGenerales.addCell(Sede.getSelectedItem().toString()+"\n");
              TablaDatosGenerales.addCell("Modalidad \t");TablaDatosGenerales.addCell(Modalidad.getSelectedItem().toString()+"\n");
              TablaDatosGenerales.addCell("Duración del Programa ");TablaDatosGenerales.addCell(DuracionPrograma.getText()+" Periodos\n");
              TablaDatosGenerales.addCell("Total de Horas Cronológicas \t");TablaDatosGenerales.addCell(TotalHoras.getText()+" hrs.\n");
              TablaDatosGenerales.addCell("Año Comienzo de Carrera  \t");TablaDatosGenerales.addCell(AnoComienzoCarrera.getText()+"\n");
              pdfApr.add(TablaDatosGenerales);// AGREGA TABLA DE DATOS GENERALES
              pdfApr.add(new Paragraph("\n\n\n"));//ESPACION ENTRE LINEAS
              /**FIN DATOS GENERALES DE CARRERA**/
              
              /**DATOS GENERALES APROBACION**/
              pdfApr.add(new Paragraph("Datos Generales de Aprobación \n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color

              pdfApr.add(new Paragraph("- El nivel de Aprobación durante el periodo en estudio fue un <<"+ PorcentAprReport.getText()+"%>>.",
                                FontFactory.getFont("arial",   // fuente
				12,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));
               pdfApr.add(new Paragraph("- El Total Asignaturas Aprobadas durante el periodo fue <<"+ Aprobados1instan.getText()+ ">> para un total de <<"+
                                        TotalAsignaturas.getText()+ ">> Asignaturas Cursadas.\n\n",
                                FontFactory.getFont("arial",   // fuente
				12,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));
               /**FIN DATOS GENERALES APROBACION**/
                /**INSTANCIAS DE APROBACIÓN**/         
               pdfApr.add(new Paragraph("\n\nInstancias de Aprobación \n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color

              pdfApr.add(new Paragraph("- Nivel de Aprobación en Primera Instancia  <<"+ PorcentajePrimeraInstancia.getText()+"%>>.  ("+PrimeraInstanciaField.getText()+"Aprobados)",
                                FontFactory.getFont("arial",   // fuente
				12,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));
              pdfApr.add(new Paragraph("- Nivel de Aprobación en Segunda Instancia  <<"+ PorcentajeSegundaInstancia1.getText()+"%>>.  ("+SegundaInstanciaField.getText()+"Aprobados)",
                                FontFactory.getFont("arial",   // fuente
				12,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));
              pdfApr.add(new Paragraph("- Nivel de Aprobación en Más de Segunda Instancia  <<"+ PorcentajeMasDeSegundaInstancia.getText()+"%>>.  ("+MasDeSegundaField.getText()+"Aprobados)",
                                FontFactory.getFont("arial",   // fuente
				12,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));

              /**FININSTANCIAS DE APROBACIÓN**/
              /**DATOS POR PERIODO**/
              pdfApr.newPage();
               pdfApr.add(new Paragraph("Aprobación Asociada a Periodos de Estudio \n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color
                 pdfApr.add(new Paragraph("                   Tabla de Resumen  - Aprobación por periodo\n\n",
                                FontFactory.getFont("arial",   // fuente
				10,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));             // color
              PdfPTable TablaPorPeriodo = new PdfPTable(3);             
              TablaPorPeriodo.addCell("PERIODO"); //ENCABEZADO DE TABLA
              TablaPorPeriodo.addCell("CANTIDAD");
              TablaPorPeriodo.addCell("TOTAL DE INSCRIPCIONES");
              for(int z=0; z<TablaAprPeriodo.getRowCount();z++){ //LLENA TABLA CON VALORES
                for(int i=0; i<3;i++){
                        TablaPorPeriodo.addCell(TablaAprPeriodo.getValueAt(z, i).toString());
                }
              }
             
              Icon icon  = new ImageIcon();
              icon = LabelGraficoAprPeriodo.getIcon();
              BufferedImage image = new BufferedImage(icon.getIconWidth(),icon.getIconHeight(), BufferedImage.TYPE_INT_RGB);
              icon.paintIcon(null, image.getGraphics(), 0, 0);
              java.awt.Image ImagenLabel = image;
//              ImagenLabel.getScaledInstance(400, 300, 1);
              Image im = com.itextpdf.text.Image.getInstance(ImagenLabel,null);
              im.scaleAbsolute(530,230);
              pdfApr.add(TablaPorPeriodo);//AGREGA TABLA DE PERIODO
              pdfApr.add(new Paragraph("\n\n"));
              pdfApr.add(im);
              

              /**FIN DATOS POR PERIODO**/  
              /**DATOS POR ASIGNATURA**/
               pdfApr.newPage();
              pdfApr.add(new Paragraph("Aprobación Asociada a Asignaturas \n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color
                 pdfApr.add(new Paragraph("                   Tabla de Resumen  - Aprobación por Asignatura\n\n",
                                FontFactory.getFont("arial",   // fuente
				10,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));             // color
              PdfPTable TablaPorAsignatura = new PdfPTable(3);
              TablaPorAsignatura.addCell("ASIGNATURA"); //ENCABEZADO DE TABLA
              TablaPorAsignatura.addCell("CANTIDAD");
              TablaPorAsignatura.addCell("TOTAL DE INSCRIPCIONES");
              for(int z=0; z<TablaAprAsignatura.getRowCount();z++){ //LLENA TABLA CON VALORES
                for(int i=0; i<3;i++){
                        TablaPorAsignatura.addCell(TablaAprAsignatura.getValueAt(z, i).toString());
                }
              }
              Icon icon1  = new ImageIcon();
              icon1 = LabelGraficoAprAsig1.getIcon();
              BufferedImage image1 = new BufferedImage(icon1.getIconWidth(),icon1.getIconHeight(), BufferedImage.TYPE_INT_RGB);
              icon1.paintIcon(null, image1.getGraphics(), 0, 0);
              java.awt.Image ImagenLabel1 = image1;
//              ImagenLabel.getScaledInstance(400, 300, 1);
              Image im1 = com.itextpdf.text.Image.getInstance(ImagenLabel1,null);
              im1.scaleAbsolute(530,500);
              pdfApr.add(TablaPorAsignatura);//AGREGA TABLA DE PERIODO
              pdfApr.add(new Paragraph("\n\n"));
              pdfApr.add(im1);
             
              /**FIN DATOS POR ASIGNATURA**/
              /**DATOS POR AREA DE ESTUDIO**/
               pdfApr.newPage();
              pdfApr.add(new Paragraph("Aprobación Asociada a Areas de Conocimiento \n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color
               pdfApr.add(new Paragraph("                   Tabla de Resumen  - Aprobación por Area de Conocimiento\n\n",
                                FontFactory.getFont("arial",   // fuente
				10,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));             // color
              PdfPTable TablaPorAreaConocimiento = new PdfPTable(3);
              TablaPorAreaConocimiento.addCell("AREA DE CONOCIMIENTO"); //ENCABEZADO DE TABLA
              TablaPorAreaConocimiento.addCell("CANTIDAD");
              TablaPorAreaConocimiento.addCell("TOTAL DE INSCRIPCIONES");
              for(int z=0; z<TablaAprAreaDeConocimiento.getRowCount();z++){ //LLENA TABLA CON VALORES
                for(int i=0; i<3;i++){
                        TablaPorAreaConocimiento.addCell(TablaAprAreaDeConocimiento.getValueAt(z, i).toString());
                }
              }
              Icon icon2  = new ImageIcon();
              icon2 = LabelGraficoAprAreaConocimiento.getIcon();
              BufferedImage image2 = new BufferedImage(icon2.getIconWidth(),icon2.getIconHeight(), BufferedImage.TYPE_INT_RGB);
              icon2.paintIcon(null, image2.getGraphics(), 0, 0);
              java.awt.Image ImagenLabel2 = image2;
//              ImagenLabel.getScaledInstance(400, 300, 1);
              Image im2 = com.itextpdf.text.Image.getInstance(ImagenLabel2,null);
              im2.scaleAbsolute(530,500);
              pdfApr.add(TablaPorAreaConocimiento);//AGREGA TABLA DE PERIODO
              pdfApr.add(new Paragraph("\n\n"));
              pdfApr.add(im2);
             
              /**FIN DATOS POR AREA DE ESTUDIO**/

              /**DATOS POR PROFESOR**/
              pdfApr.newPage();
              pdfApr.add(new Paragraph("Aprobación Asociada a Profesor \n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color
               pdfApr.add(new Paragraph("                   Tabla de Resumen  - Aprobación por Profesor\n\n",
                                FontFactory.getFont("arial",   // fuente
				10,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));             // color
              PdfPTable TablaPorProfesor = new PdfPTable(3);
              TablaPorProfesor.addCell("PROFESOR"); //ENCABEZADO DE TABLA
              TablaPorProfesor.addCell("CANTIDAD");
              TablaPorProfesor.addCell("TOTAL DE INSCRIPCIONES");
              for(int z=0; z<TablaAprProfesor.getRowCount();z++){ //LLENA TABLA CON VALORES
                for(int i=0; i<3;i++){
                        TablaPorProfesor.addCell(TablaAprProfesor.getValueAt(z, i).toString());
                }
              }
              Icon icon3  = new ImageIcon();
              icon3 = LabelGraficoAprProfesor.getIcon();
              BufferedImage image3 = new BufferedImage(icon3.getIconWidth(),icon3.getIconHeight(), BufferedImage.TYPE_INT_RGB);
              icon3.paintIcon(null, image3.getGraphics(), 0, 0);
              java.awt.Image ImagenLabel3 = image3;
//              ImagenLabel.getScaledInstance(400, 300, 1);
              Image im3 = com.itextpdf.text.Image.getInstance(ImagenLabel3,null);
              im3.scaleAbsolute(530,700);
              pdfApr.add(TablaPorProfesor);//AGREGA TABLA DE PERIODO
              pdfApr.add(new Paragraph("\n\n"));
              pdfApr.add(im3);
              /**FIN DATOS POR PROFESOR**/
              pdfApr.close();
              JOptionPane.showMessageDialog(null, "Se ha generado Documento PDF. \n Guardado Exitosamente en "+view.getDefaultDirectory());

}
@Action
public void ImprimeRpr() throws FileNotFoundException, DocumentException, BadElementException, IOException{

             if(!ReprobacionGenerada){
                 JOptionPane.showMessageDialog(null,"Debe generar Reporte de Reprobación para Imprimir","Error",JOptionPane.ERROR_MESSAGE);;
                return;
             }
             JFileChooser chooser = new JFileChooser();
             FileSystemView view = chooser.getFileSystemView();
             Document pdfApr = new Document();
             FileOutputStream archivoPdf = new FileOutputStream(view.getDefaultDirectory()+"/ReporteReprobacion("+CodigoCarrera.getText().toString()+").pdf");
             PdfWriter.getInstance(pdfApr,archivoPdf).setInitialLeading(15);
             pdfApr.open();

             pdfApr.addTitle("Reporte de Reprobacion");
             pdfApr.add(new Paragraph("Reporte de Reprobacion",
				FontFactory.getFont("arial",   // fuente
				22,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLUE)));             // color

             pdfApr.add(new Paragraph("_____________________________________________________________________________\n\n\n"));


             /**DATOS GENERALES DE CARRERA**/
             pdfApr.add(new Paragraph("Datos Generales del Plan de Estudios\n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color

              PdfPTable TablaDatosGenerales = new PdfPTable(2);
              TablaDatosGenerales.addCell("Nombre Carrera \t");TablaDatosGenerales.addCell(NombreCarrera.getText()+"\n");
              TablaDatosGenerales.addCell("Codigo\t");TablaDatosGenerales.addCell(CodigoCarrera.getText()+"\n");
              TablaDatosGenerales.addCell("Regimen de Estudios\t");TablaDatosGenerales.addCell(Regimen.getSelectedItem().toString()+"\n");
              TablaDatosGenerales.addCell("Institución \t");TablaDatosGenerales.addCell(NombreUniversidad.getText()+"\n");
              TablaDatosGenerales.addCell("Sede \t");TablaDatosGenerales.addCell(Sede.getSelectedItem().toString()+"\n");
              TablaDatosGenerales.addCell("Modalidad \t");TablaDatosGenerales.addCell(Modalidad.getSelectedItem().toString()+"\n");
              TablaDatosGenerales.addCell("Duración del Programa ");TablaDatosGenerales.addCell(DuracionPrograma.getText()+" Periodos\n");
              TablaDatosGenerales.addCell("Total de Horas Cronológicas \t");TablaDatosGenerales.addCell(TotalHoras.getText()+" hrs.\n");
              TablaDatosGenerales.addCell("Año Comienzo de Carrera  \t");TablaDatosGenerales.addCell(AnoComienzoCarrera.getText()+"\n");
              pdfApr.add(TablaDatosGenerales);// AGREGA TABLA DE DATOS GENERALES
              pdfApr.add(new Paragraph("\n\n\n"));//ESPACION ENTRE LINEAS
              /**FIN DATOS GENERALES DE CARRERA**/

              /**DATOS GENERALES APROBACION**/
              pdfApr.add(new Paragraph("Datos Generales de Reprobacion \n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color

              pdfApr.add(new Paragraph("- El nivel de Reprobacion durante el periodo en estudio fue un <<"+ PorcentRprReport.getText()+"%>>.",
                                FontFactory.getFont("arial",   // fuente
				12,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));
               pdfApr.add(new Paragraph("- El Total Asignaturas Reprobadas durante el periodo fue <<"+ Reprobacion.Reprobados.toString()+ ">> para un total de <<"+
                                       Reprobacion.TotalAsignaturas().toString()+ ">> Asignaturas Cursadas.\n\n",
                                FontFactory.getFont("arial",   // fuente
				12,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));
               /**FIN DATOS GENERALES APROBACION**/
              /**DATOS POR PERIODO**/
              pdfApr.newPage();
               pdfApr.add(new Paragraph("Reprobacion Asociada a Periodos de Estudio \n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color
                 pdfApr.add(new Paragraph("                   Tabla de Resumen  - Reprobación por periodo\n\n",
                                FontFactory.getFont("arial",   // fuente
				10,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));             // color
              PdfPTable TablaPorPeriodo = new PdfPTable(3);
              TablaPorPeriodo.addCell("PERIODO"); //ENCABEZADO DE TABLA
              TablaPorPeriodo.addCell("CANTIDAD");
              TablaPorPeriodo.addCell("TOTAL DE INSCRIPCIONES");
              for(int z=0; z<TablaRprPeriodo.getRowCount();z++){ //LLENA TABLA CON VALORES
                for(int i=0; i<3;i++){
                        TablaPorPeriodo.addCell(TablaRprPeriodo.getValueAt(z, i).toString());
                }
              }

              Icon icon  = new ImageIcon();
              icon = LabelGraficoRprPeriodo.getIcon();
              BufferedImage image = new BufferedImage(icon.getIconWidth(),icon.getIconHeight(), BufferedImage.TYPE_INT_RGB);
              icon.paintIcon(null, image.getGraphics(), 0, 0);
              java.awt.Image ImagenLabel = image;
//              ImagenLabel.getScaledInstance(400, 300, 1);
              Image im = com.itextpdf.text.Image.getInstance(ImagenLabel,null);
              im.scaleAbsolute(530,230);
              pdfApr.add(TablaPorPeriodo);//AGREGA TABLA DE PERIODO
             
              pdfApr.add(im);


              /**FIN DATOS POR PERIODO**/
              /**DATOS POR ASIGNATURA**/
               pdfApr.newPage();
              pdfApr.add(new Paragraph("Reprobación Asociada a Asignaturas \n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color
                 pdfApr.add(new Paragraph("                   Tabla de Resumen  - Reprobación por Asignatura\n\n",
                                FontFactory.getFont("arial",   // fuente
				10,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));             // color
              PdfPTable TablaPorAsignatura = new PdfPTable(3);
              TablaPorAsignatura.addCell("ASIGNATURA"); //ENCABEZADO DE TABLA
              TablaPorAsignatura.addCell("CANTIDAD");
              TablaPorAsignatura.addCell("TOTAL DE INSCRIPCIONES");
              for(int z=0; z<TablaRprAsignatura.getRowCount();z++){ //LLENA TABLA CON VALORES
                for(int i=0; i<3;i++){
                        TablaPorAsignatura.addCell(TablaRprAsignatura.getValueAt(z, i).toString());
                }
              }
              Icon icon1  = new ImageIcon();
              icon1 = LabelGraficoRprAsig.getIcon();
              BufferedImage image1 = new BufferedImage(icon1.getIconWidth(),icon1.getIconHeight(), BufferedImage.TYPE_INT_RGB);
              icon1.paintIcon(null, image1.getGraphics(), 0, 0);
              java.awt.Image ImagenLabel1 = image1;
//              ImagenLabel.getScaledInstance(400, 300, 1);
              Image im1 = com.itextpdf.text.Image.getInstance(ImagenLabel1,null);
              im1.scaleAbsolute(530,500);
              pdfApr.add(TablaPorAsignatura);//AGREGA TABLA DE PERIODO
              pdfApr.add(im1);

              /**FIN DATOS POR ASIGNATURA**/
              /**DATOS POR AREA DE ESTUDIO**/
               pdfApr.newPage();
              pdfApr.add(new Paragraph("Reprobación Asociada a Áreas de Conocimiento \n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color
               pdfApr.add(new Paragraph("                   Tabla de Resumen  - Reprobación por Area de Conocimiento\n\n",
                                FontFactory.getFont("arial",   // fuente
				10,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));             // color
              PdfPTable TablaPorAreaConocimiento = new PdfPTable(3);
              TablaPorAreaConocimiento.addCell("AREA DE CONOCIMIENTO"); //ENCABEZADO DE TABLA
              TablaPorAreaConocimiento.addCell("CANTIDAD");
              TablaPorAreaConocimiento.addCell("TOTAL DE INSCRIPCIONES");
              for(int z=0; z<TablaRprAreaDeConocimiento.getRowCount();z++){ //LLENA TABLA CON VALORES
                for(int i=0; i<3;i++){
                        TablaPorAreaConocimiento.addCell(TablaRprAreaDeConocimiento.getValueAt(z, i).toString());
                }
              }
              Icon icon2  = new ImageIcon();
              icon2 = LabelGraficoRprAreaConocimiento.getIcon();
              BufferedImage image2 = new BufferedImage(icon2.getIconWidth(),icon2.getIconHeight(), BufferedImage.TYPE_INT_RGB);
              icon2.paintIcon(null, image2.getGraphics(), 0, 0);
              java.awt.Image ImagenLabel2 = image2;
//              ImagenLabel.getScaledInstance(400, 300, 1);
              Image im2 = com.itextpdf.text.Image.getInstance(ImagenLabel2,null);
              im2.scaleAbsolute(530,500);
              pdfApr.add(TablaPorAreaConocimiento);//AGREGA TABLA DE PERIODO
              pdfApr.add(im2);

              /**FIN DATOS POR AREA DE ESTUDIO**/

              /**DATOS POR PROFESOR**/
              pdfApr.newPage();
              pdfApr.add(new Paragraph("Reprobación Asociada a Profesor \n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color
               pdfApr.add(new Paragraph("                   Tabla de Resumen  - Reprobación por Profesor\n\n",
                                FontFactory.getFont("arial",   // fuente
				10,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));             // color
              PdfPTable TablaPorProfesor = new PdfPTable(3);
              TablaPorProfesor.addCell("PROFESOR"); //ENCABEZADO DE TABLA
              TablaPorProfesor.addCell("CANTIDAD");
              TablaPorProfesor.addCell("TOTAL DE INSCRIPCIONES");
              for(int z=0; z<TablaRprProfesor.getRowCount();z++){ //LLENA TABLA CON VALORES
                for(int i=0; i<3;i++){
                        TablaPorProfesor.addCell(TablaRprProfesor.getValueAt(z, i).toString());
                }
              }
              Icon icon3  = new ImageIcon();
              icon3 = LabelGraficoRprProfesor.getIcon();
              BufferedImage image3 = new BufferedImage(icon3.getIconWidth(),icon3.getIconHeight(), BufferedImage.TYPE_INT_RGB);
              icon3.paintIcon(null, image3.getGraphics(), 0, 0);
              java.awt.Image ImagenLabel3 = image3;
//              ImagenLabel.getScaledInstance(400, 300, 1);
              Image im3 = com.itextpdf.text.Image.getInstance(ImagenLabel3,null);
              im3.scaleAbsolute(530,700);
              pdfApr.add(TablaPorProfesor);//AGREGA TABLA DE PERIODO
              pdfApr.add(im3);
              /**FIN DATOS POR PROFESOR**/
              pdfApr.close();
              JOptionPane.showMessageDialog(null, "Se ha generado Documento PDF. \n Guardado Exitosamente en "+view.getDefaultDirectory());

}
@Action
public void ImprimeRen() throws FileNotFoundException, DocumentException, BadElementException, IOException{
            try{
             if(!RenunciaGenerada){
                 JOptionPane.showMessageDialog(null,"Debe generar Reporte de Renuncia para Imprimir","Error",JOptionPane.ERROR_MESSAGE);
                return;
             }
             JFileChooser chooser = new JFileChooser();
             FileSystemView view = chooser.getFileSystemView();
             Document pdfApr = new Document();
             FileOutputStream archivoPdf = new FileOutputStream(view.getDefaultDirectory()+"/ReporteRenuncia("+CodigoCarrera.getText().toString()+").pdf");
             PdfWriter.getInstance(pdfApr,archivoPdf).setInitialLeading(15);
             pdfApr.open();

             pdfApr.addTitle("Reporte de Renuncia");
             pdfApr.add(new Paragraph("Reporte de Renuncia",
				FontFactory.getFont("arial",   // fuente
				22,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLUE)));             // color

             pdfApr.add(new Paragraph("_____________________________________________________________________________\n\n\n"));


             /**DATOS GENERALES DE CARRERA**/
             pdfApr.add(new Paragraph("Datos Generales del Plan de Estudios\n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color

              PdfPTable TablaDatosGenerales = new PdfPTable(2);
              TablaDatosGenerales.addCell("Nombre Carrera \t");TablaDatosGenerales.addCell(NombreCarrera.getText()+"\n");
              TablaDatosGenerales.addCell("Codigo\t");TablaDatosGenerales.addCell(CodigoCarrera.getText()+"\n");
              TablaDatosGenerales.addCell("Regimen de Estudios\t");TablaDatosGenerales.addCell(Regimen.getSelectedItem().toString()+"\n");
              TablaDatosGenerales.addCell("Institución \t");TablaDatosGenerales.addCell(NombreUniversidad.getText()+"\n");
              TablaDatosGenerales.addCell("Sede \t");TablaDatosGenerales.addCell(Sede.getSelectedItem().toString()+"\n");
              TablaDatosGenerales.addCell("Modalidad \t");TablaDatosGenerales.addCell(Modalidad.getSelectedItem().toString()+"\n");
              TablaDatosGenerales.addCell("Duración del Programa ");TablaDatosGenerales.addCell(DuracionPrograma.getText()+" Periodos\n");
              TablaDatosGenerales.addCell("Total de Horas Cronológicas \t");TablaDatosGenerales.addCell(TotalHoras.getText()+" hrs.\n");
              TablaDatosGenerales.addCell("Año Comienzo de Carrera  \t");TablaDatosGenerales.addCell(AnoComienzoCarrera.getText()+"\n");
              pdfApr.add(TablaDatosGenerales);// AGREGA TABLA DE DATOS GENERALES
              pdfApr.add(new Paragraph("\n\n\n"));//ESPACION ENTRE LINEAS
              /**FIN DATOS GENERALES DE CARRERA**/

              /**DATOS GENERALES**/
              pdfApr.add(new Paragraph("Datos Generales de Renuncia \n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color

              pdfApr.add(new Paragraph("- Renuncias Registradas Durante el Priodo : <<"+ PorcentRenReport.getText()+"%>>.",
                                FontFactory.getFont("arial",   // fuente
				12,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));
               pdfApr.add(new Paragraph("- Total de asignaturas inscritas durante el periodo :<<"+ TotalAsignaturasInscritasRen.getText()+ ">>.\n\n",
                                FontFactory.getFont("arial",   // fuente
				12,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));
               /**FIN DATOS GENERALES **/
                
              /**DATOS POR PERIODO**/
              pdfApr.newPage();
               pdfApr.add(new Paragraph("Renuncia Asociada a Periodos de Estudio \n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color
                 pdfApr.add(new Paragraph("                   Tabla de Resumen  - Aprobación por periodo\n\n",
                                FontFactory.getFont("arial",   // fuente
				10,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));             // color
              PdfPTable TablaPorPeriodo = new PdfPTable(2);
              TablaPorPeriodo.addCell("PERIODO"); //ENCABEZADO DE TABLA
              TablaPorPeriodo.addCell("CANTIDAD");
            
              for(int z=0; z<TablaRenPeriodo.getRowCount();z++){ //LLENA TABLA CON VALORES
                for(int i=0; i<2;i++){
                        TablaPorPeriodo.addCell(TablaRenPeriodo.getValueAt(z, i).toString());
                }
              }

              Icon icon  = new ImageIcon();
              icon = LabelGraficoRenPeriodo.getIcon();
              BufferedImage image = new BufferedImage(icon.getIconWidth(),icon.getIconHeight(), BufferedImage.TYPE_INT_RGB);
              icon.paintIcon(null, image.getGraphics(), 0, 0);
              java.awt.Image ImagenLabel = image;
//              ImagenLabel.getScaledInstance(400, 300, 1);
              Image im = com.itextpdf.text.Image.getInstance(ImagenLabel,null);
              im.scaleAbsolute(530,230);
              pdfApr.add(TablaPorPeriodo);//AGREGA TABLA DE PERIODO
              pdfApr.add(im);


              /**FIN DATOS POR PERIODO**/
              /**DATOS POR ASIGNATURA**/
               pdfApr.newPage();
              pdfApr.add(new Paragraph("Renuncia Asociada a Asignaturas \n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color
                 pdfApr.add(new Paragraph("                   Tabla de Resumen  - Renuncia por Asignatura\n\n",
                                FontFactory.getFont("arial",   // fuente
				10,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));             // color
              PdfPTable TablaPorAsignatura = new PdfPTable(2);
              TablaPorAsignatura.addCell("ASIGNATURA"); //ENCABEZADO DE TABLA
              TablaPorAsignatura.addCell("CANTIDAD");

              for(int z=0; z<TablaRenAsignatura.getRowCount();z++){ //LLENA TABLA CON VALORES
                for(int i=0; i<2;i++){
                        TablaPorAsignatura.addCell(TablaRenAsignatura.getValueAt(z, i).toString());
                }
              }
              Icon icon1  = new ImageIcon();
              icon1 = LabelGraficoRenAsig.getIcon();
              BufferedImage image1 = new BufferedImage(icon1.getIconWidth(),icon1.getIconHeight(), BufferedImage.TYPE_INT_RGB);
              icon1.paintIcon(null, image1.getGraphics(), 0, 0);
              java.awt.Image ImagenLabel1 = image1;
//              ImagenLabel.getScaledInstance(400, 300, 1);
              Image im1 = com.itextpdf.text.Image.getInstance(ImagenLabel1,null);
              im1.scaleAbsolute(530,500);
              pdfApr.add(TablaPorAsignatura);//AGREGA TABLA DE PERIODO
              pdfApr.add(new Paragraph("\n\n"));
              pdfApr.add(im1);

              /**FIN DATOS POR ASIGNATURA**/
              /**DATOS POR AREA DE ESTUDIO**/
               pdfApr.newPage();
              pdfApr.add(new Paragraph("Renuncia Asociada a Areas de Conocimiento \n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color
               pdfApr.add(new Paragraph("                   Tabla de Resumen  - Renuncia por Area de Conocimiento\n\n",
                                FontFactory.getFont("arial",   // fuente
				10,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));             // color
              PdfPTable TablaPorAreaConocimiento = new PdfPTable(2);
              TablaPorAreaConocimiento.addCell("AREA DE CONOCIMIENTO"); //ENCABEZADO DE TABLA
              TablaPorAreaConocimiento.addCell("CANTIDAD");

              for(int z=0; z<TablaRenAreaDeConocimiento.getRowCount();z++){ //LLENA TABLA CON VALORES
                for(int i=0; i<2;i++){
                        TablaPorAreaConocimiento.addCell(TablaRenAreaDeConocimiento.getValueAt(z, i).toString());
                }
              }
              Icon icon2  = new ImageIcon();
              icon2 = LabelGraficoRenAreaConocimiento.getIcon();
              BufferedImage image2 = new BufferedImage(icon2.getIconWidth(),icon2.getIconHeight(), BufferedImage.TYPE_INT_RGB);
              icon2.paintIcon(null, image2.getGraphics(), 0, 0);
              java.awt.Image ImagenLabel2 = image2;
//              ImagenLabel.getScaledInstance(400, 300, 1);
              Image im2 = com.itextpdf.text.Image.getInstance(ImagenLabel2,null);
              im2.scaleAbsolute(530,500);
              pdfApr.add(TablaPorAreaConocimiento);//AGREGA TABLA DE PERIODO
              pdfApr.add(new Paragraph("\n\n"));
              pdfApr.add(im2);

              /**FIN DATOS POR AREA DE ESTUDIO**/

              /**DATOS POR PROFESOR**/
              pdfApr.newPage();
              pdfApr.add(new Paragraph("Renuncia Asociada a Profesor \n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color
               pdfApr.add(new Paragraph("                   Tabla de Resumen  - Renuncia por Profesor\n\n",
                                FontFactory.getFont("arial",   // fuente
				10,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));             // color
              PdfPTable TablaPorProfesor = new PdfPTable(2);
              TablaPorProfesor.addCell("PROFESOR"); //ENCABEZADO DE TABLA
              TablaPorProfesor.addCell("CANTIDAD");

              for(int z=0; z<TablaRenProfesor.getRowCount();z++){ //LLENA TABLA CON VALORES
                for(int i=0; i<2;i++){
                        TablaPorProfesor.addCell(TablaRenProfesor.getValueAt(z, i).toString());
                }
              }
              Icon icon3  = new ImageIcon();
              icon3 = LabelGraficoRenProfesor.getIcon();
              BufferedImage image3 = new BufferedImage(icon3.getIconWidth(),icon3.getIconHeight(), BufferedImage.TYPE_INT_RGB);
              icon3.paintIcon(null, image3.getGraphics(), 0, 0);
              java.awt.Image ImagenLabel3 = image3;
//              ImagenLabel.getScaledInstance(400, 300, 1);
              Image im3 = com.itextpdf.text.Image.getInstance(ImagenLabel3,null);
              im3.scaleAbsolute(530,500);
              pdfApr.add(TablaPorProfesor);//AGREGA TABLA DE PERIODO
              pdfApr.add(new Paragraph("\n\n"));
              pdfApr.add(im3);
              /**FIN DATOS POR PROFESOR**/
              pdfApr.close();
              JOptionPane.showMessageDialog(null, "Se ha generado Documento PDF. \n Guardado Exitosamente en "+view.getDefaultDirectory());
             }catch(NullPointerException e){
                 JOptionPane.showMessageDialog(null,"Por Favor, Revise la Fuente de Datos.\nExisten Datos Incompletos.","Error",JOptionPane.ERROR_MESSAGE);
             }
}
@Action
public void ImprimeElim() throws FileNotFoundException, DocumentException, BadElementException, IOException{

             if(!EliminacionGenerada){
                 JOptionPane.showMessageDialog(null,"Debe generar Reporte de Eliminación para Imprimir","Error",JOptionPane.ERROR_MESSAGE);;
                return;
             }
             JFileChooser chooser = new JFileChooser();
             FileSystemView view = chooser.getFileSystemView();
             Document pdfApr = new Document();
             FileOutputStream archivoPdf = new FileOutputStream(view.getDefaultDirectory()+"/ReporteEliminacion("+CodigoCarrera.getText().toString()+").pdf");
             PdfWriter.getInstance(pdfApr,archivoPdf).setInitialLeading(15);
             pdfApr.open();

             pdfApr.addTitle("Reporte de Eliminacion");
             pdfApr.add(new Paragraph("Reporte de Causales de Eliminación Académica",
				FontFactory.getFont("arial",   // fuente
				22,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLUE)));             // color

             pdfApr.add(new Paragraph("_____________________________________________________________________________\n\n\n"));


             /**DATOS GENERALES DE CARRERA**/
             pdfApr.add(new Paragraph("Datos Generales del Plan de Estudios\n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color

              PdfPTable TablaDatosGenerales = new PdfPTable(2);
              TablaDatosGenerales.addCell("Nombre Carrera \t");TablaDatosGenerales.addCell(NombreCarrera.getText()+"\n");
              TablaDatosGenerales.addCell("Codigo\t");TablaDatosGenerales.addCell(CodigoCarrera.getText()+"\n");
              TablaDatosGenerales.addCell("Regimen de Estudios\t");TablaDatosGenerales.addCell(Regimen.getSelectedItem().toString()+"\n");
              TablaDatosGenerales.addCell("Institución \t");TablaDatosGenerales.addCell(NombreUniversidad.getText()+"\n");
              TablaDatosGenerales.addCell("Sede \t");TablaDatosGenerales.addCell(Sede.getSelectedItem().toString()+"\n");
              TablaDatosGenerales.addCell("Modalidad \t");TablaDatosGenerales.addCell(Modalidad.getSelectedItem().toString()+"\n");
              TablaDatosGenerales.addCell("Duración del Programa ");TablaDatosGenerales.addCell(DuracionPrograma.getText()+" Periodos\n");
              TablaDatosGenerales.addCell("Total de Horas Cronológicas \t");TablaDatosGenerales.addCell(TotalHoras.getText()+" hrs.\n");
              TablaDatosGenerales.addCell("Año Comienzo de Carrera  \t");TablaDatosGenerales.addCell(AnoComienzoCarrera.getText()+"\n");
              pdfApr.add(TablaDatosGenerales);// AGREGA TABLA DE DATOS GENERALES
              pdfApr.add(new Paragraph("\n\n\n"));//ESPACION ENTRE LINEAS
              /**FIN DATOS GENERALES DE CARRERA**/

              /**DATOS GENERALES Eliminacion**/
              pdfApr.add(new Paragraph("Datos Generales de Causales de Eliminación Académica \n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color

              pdfApr.add(new Paragraph("- Nivel de Causales de Eliminación durante el Periodo : <<"+ CantPerdidasCea.getText()+"%>>.",
                                FontFactory.getFont("arial",   // fuente
				12,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));
               pdfApr.add(new Paragraph("- El Total Asignaturas Aprobadas durante el periodo fue <<"+ TotalAsigInscritasCea.getText()+ ">> para un total de <<"+
                                        CantAlumnInscrCea.getText()+ ">> Alumnos Inscritos.\n\n",
                                FontFactory.getFont("arial",   // fuente
				12,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));
               /**FIN DATOS GENERALES Eliminacion**/
                /**INSTANCIAS DE Eliminacion**/
               pdfApr.add(new Paragraph("\n\nCausales de Eliminación. \n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color

              pdfApr.add(new Paragraph("-Causales de Eliminación por Reprobación de Asignatura en 2ª Instancia  <<"+ CeaSegundaInstancia.getText()+">>.",
                                FontFactory.getFont("arial",   // fuente
				12,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));
              pdfApr.add(new Paragraph("-Causales de Eliminación por Reprobación de Asignatura en más de 2ª Instancia  <<"+ CeaMasDeSegundaInstancia.getText()+">>.",
                                FontFactory.getFont("arial",   // fuente
				12,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));
              pdfApr.add(new Paragraph("- Causales de Eliminación por Bajo Crédito Académico  <<"+ CeaBajoCredito.getText()+">>.",
                                FontFactory.getFont("arial",   // fuente
				12,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));
               pdfApr.add(new Paragraph("- Causales de Eliminación por Ausentismo  <<"+ CeaAusentismo.getText()+">>.",
                                FontFactory.getFont("arial",   // fuente
				12,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));

              Icon icon  = new ImageIcon();
              icon = GraficoCeaCausales.getIcon();
              BufferedImage image = new BufferedImage(icon.getIconWidth(),icon.getIconHeight(), BufferedImage.TYPE_INT_RGB);
              icon.paintIcon(null, image.getGraphics(), 0, 0);
              java.awt.Image ImagenLabel = image;
//              ImagenLabel.getScaledInstance(400, 300, 1);
              Image im = com.itextpdf.text.Image.getInstance(ImagenLabel,null);
              im.scaleAbsolute(530,230);
        
              pdfApr.add(im);

              /**FININSTANCIAS DE Eliminacion**/
           
              /**DATOS POR ASIGNATURA**/
              pdfApr.newPage();
              pdfApr.add(new Paragraph("Eliminación Académica Asociada a Asignaturas \n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color
                 pdfApr.add(new Paragraph("                   Tabla de Resumen  - Eliminación Académica por Asignatura\n\n",
                                FontFactory.getFont("arial",   // fuente
				10,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));             // color
              PdfPTable TablaPorAsignatura = new PdfPTable(2);
              TablaPorAsignatura.addCell("ASIGNATURA"); //ENCABEZADO DE TABLA
              TablaPorAsignatura.addCell("CANTIDAD");
      
              for(int z=0; z<TablaCeaAsignatura.getRowCount();z++){ //LLENA TABLA CON VALORES
                for(int i=0; i<2;i++){
                        TablaPorAsignatura.addCell(TablaCeaAsignatura.getValueAt(z, i).toString());
                }
              }
              Icon icon1  = new ImageIcon();
              icon1 = LabelGraficoCeaAsignatura.getIcon();
              BufferedImage image1 = new BufferedImage(icon1.getIconWidth(),icon1.getIconHeight(), BufferedImage.TYPE_INT_RGB);
              icon1.paintIcon(null, image1.getGraphics(), 0, 0);
              java.awt.Image ImagenLabel1 = image1;
//              ImagenLabel.getScaledInstance(400, 300, 1);
              Image im1 = com.itextpdf.text.Image.getInstance(ImagenLabel1,null);
              im1.scaleAbsolute(530,500);
              pdfApr.add(TablaPorAsignatura);//AGREGA TABLA DE PERIODO
              pdfApr.add(new Paragraph("\n\n"));
              pdfApr.add(im1);

              /**FIN DATOS POR ASIGNATURA**/
              /**DATOS POR AREA DE ESTUDIO**/
               pdfApr.newPage();
              pdfApr.add(new Paragraph("Eliminación Académica Asociada a Areas de Conocimiento \n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color
               pdfApr.add(new Paragraph("                   Tabla de Resumen  - Eliminación Académica por Area de Conocimiento\n\n",
                                FontFactory.getFont("arial",   // fuente
				10,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));             // color
              PdfPTable TablaPorAreaConocimiento = new PdfPTable(2);
              TablaPorAreaConocimiento.addCell("AREA DE CONOCIMIENTO"); //ENCABEZADO DE TABLA
              TablaPorAreaConocimiento.addCell("CANTIDAD");

              for(int z=0; z<TablaCeaAreaDeConocimiento.getRowCount();z++){ //LLENA TABLA CON VALORES
                for(int i=0; i<2;i++){
                        TablaPorAreaConocimiento.addCell(TablaCeaAreaDeConocimiento.getValueAt(z, i).toString());
                }
              }
              Icon icon2  = new ImageIcon();
              icon2 = LabelGraficoCeaAreaConocimiento.getIcon();
              BufferedImage image2 = new BufferedImage(icon2.getIconWidth(),icon2.getIconHeight(), BufferedImage.TYPE_INT_RGB);
              icon2.paintIcon(null, image2.getGraphics(), 0, 0);
              java.awt.Image ImagenLabel2 = image2;
//              ImagenLabel.getScaledInstance(400, 300, 1);
              Image im2 = com.itextpdf.text.Image.getInstance(ImagenLabel2,null);
              im2.scaleAbsolute(530,500);
              pdfApr.add(TablaPorAreaConocimiento);//AGREGA TABLA DE PERIODO
              pdfApr.add(new Paragraph("\n\n"));
              pdfApr.add(im2);

              /**FIN DATOS POR AREA DE ESTUDIO**/

              /**DATOS POR PROFESOR**/
              pdfApr.newPage();
              pdfApr.add(new Paragraph("Eliminación Académica Asociada a Periodo de Estudio \n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color
               pdfApr.add(new Paragraph("                   Tabla de Resumen  - Aprobación por Profesor\n\n",
                                FontFactory.getFont("arial",   // fuente
				10,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));             // color
              PdfPTable TablaPorProfesor = new PdfPTable(2);
              TablaPorProfesor.addCell("Periodo"); //ENCABEZADO DE TABLA
              TablaPorProfesor.addCell("CANTIDAD");

              for(int z=0; z<TablaCeaPeriodo.getRowCount();z++){ //LLENA TABLA CON VALORES
                for(int i=0; i<2;i++){
                        TablaPorProfesor.addCell(TablaCeaPeriodo.getValueAt(z, i).toString());
                }
              }
              Icon icon3  = new ImageIcon();
              icon3 = LabelGraficoCeaPeriodo.getIcon();
              BufferedImage image3 = new BufferedImage(icon3.getIconWidth(),icon3.getIconHeight(), BufferedImage.TYPE_INT_RGB);
              icon3.paintIcon(null, image3.getGraphics(), 0, 0);
              java.awt.Image ImagenLabel3 = image3;
//              ImagenLabel.getScaledInstance(400, 300, 1);
              Image im3 = com.itextpdf.text.Image.getInstance(ImagenLabel3,null);
              im3.scaleAbsolute(530,500);
              pdfApr.add(TablaPorProfesor);//AGREGA TABLA DE PERIODO
              pdfApr.add(new Paragraph("\n\n"));
              pdfApr.add(im3);
              /**FIN DATOS POR PROFESOR**/
              pdfApr.close();
              JOptionPane.showMessageDialog(null, "Se ha generado Documento PDF. \n Guardado Exitosamente en "+view.getDefaultDirectory());

}
@Action
public void ImprimePyRT() throws FileNotFoundException, DocumentException, BadElementException, IOException{

             if(!PerrmanenciaGenerada){
                 JOptionPane.showMessageDialog(null,"Debe generar Reporte de Permanencia y Retiros Temporales para Imprimir","Error",JOptionPane.ERROR_MESSAGE);;
                return;
             }
             JFileChooser chooser = new JFileChooser();
             FileSystemView view = chooser.getFileSystemView();
             Document pdfApr = new Document();
             FileOutputStream archivoPdf = new FileOutputStream(view.getDefaultDirectory()+"/ReportePermanenciaRetirostemporales("+CodigoCarrera.getText().toString()+").pdf");
             PdfWriter.getInstance(pdfApr,archivoPdf).setInitialLeading(15);
             pdfApr.open();

             pdfApr.addTitle("Reporte de Permanencia y Retiros Temporales");
             pdfApr.add(new Paragraph("Reporte de Permanencia y Retiros Temporales",
				FontFactory.getFont("arial",   // fuente
				22,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLUE)));             // color

             pdfApr.add(new Paragraph("_____________________________________________________________________________\n\n\n"));


             /**DATOS GENERALES DE CARRERA**/
             pdfApr.add(new Paragraph("Datos Generales del Plan de Estudios\n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color

              PdfPTable TablaDatosGenerales = new PdfPTable(2);
              TablaDatosGenerales.addCell("Nombre Carrera \t");TablaDatosGenerales.addCell(NombreCarrera.getText()+"\n");
              TablaDatosGenerales.addCell("Codigo\t");TablaDatosGenerales.addCell(CodigoCarrera.getText()+"\n");
              TablaDatosGenerales.addCell("Regimen de Estudios\t");TablaDatosGenerales.addCell(Regimen.getSelectedItem().toString()+"\n");
              TablaDatosGenerales.addCell("Institución \t");TablaDatosGenerales.addCell(NombreUniversidad.getText()+"\n");
              TablaDatosGenerales.addCell("Sede \t");TablaDatosGenerales.addCell(Sede.getSelectedItem().toString()+"\n");
              TablaDatosGenerales.addCell("Modalidad \t");TablaDatosGenerales.addCell(Modalidad.getSelectedItem().toString()+"\n");
              TablaDatosGenerales.addCell("Duración del Programa ");TablaDatosGenerales.addCell(DuracionPrograma.getText()+" Periodos\n");
              TablaDatosGenerales.addCell("Total de Horas Cronológicas \t");TablaDatosGenerales.addCell(TotalHoras.getText()+" hrs.\n");
              TablaDatosGenerales.addCell("Año Comienzo de Carrera  \t");TablaDatosGenerales.addCell(AnoComienzoCarrera.getText()+"\n");
              pdfApr.add(TablaDatosGenerales);// AGREGA TABLA DE DATOS GENERALES
              pdfApr.add(new Paragraph("\n\n\n"));//ESPACION ENTRE LINEAS
              /**FIN DATOS GENERALES DE CARRERA**/

              /**DATOS GENERALES APROBACION**/
               pdfApr.add(new Paragraph("RETIROS TEMPORALES \n\n",
                                FontFactory.getFont("arial",   // fuente
				15,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));
              pdfApr.add(new Paragraph("Datos Generales de Retiros Temporales \n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color

              pdfApr.add(new Paragraph("- Total de Alumnos con Retiro Temporal Durante Periodo <<"+ NivelRetirosTemporales.getText()+"%>>.",
                                FontFactory.getFont("arial",   // fuente
				12,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));
               pdfApr.add(new Paragraph("- Total Alumnos en Periodo <<"+ CantidadAlumnosInscritosPRT.getText()+ "\n",
                                FontFactory.getFont("arial",   // fuente
				12,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));
               /**FIN DATOS GENERALES APROBACION**/
                /**INSTANCIAS DE RT**/
               pdfApr.add(new Paragraph("Retiros Temporales por Instancia \n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color

              pdfApr.add(new Paragraph("- Retiro Temporal por 1 Semestre Académico  <<"+ RT1Semestre.getText()+">>",
                                FontFactory.getFont("arial",   // fuente
				12,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));
              pdfApr.add(new Paragraph("- Retiro Temporal por 2 Semestres Académicos Consecutivos  <<"+ RT2Semestres.getText()+">>",
                                FontFactory.getFont("arial",   // fuente
				12,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));
              pdfApr.add(new Paragraph("- Retiro Temporal por 3 Semestres Académicos Alternativos  <<"+ RT3SemestresAlt.getText()+">>",
                                FontFactory.getFont("arial",   // fuente
				12,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));                     

              Icon icon  = new ImageIcon();
              icon = LabelGraficoPyRTRetiros.getIcon();
              BufferedImage image = new BufferedImage(icon.getIconWidth(),icon.getIconHeight(), BufferedImage.TYPE_INT_RGB);
              icon.paintIcon(null, image.getGraphics(), 0, 0);
              java.awt.Image ImagenLabel = image;
//              ImagenLabel.getScaledInstance(400, 300, 1);
              Image im = com.itextpdf.text.Image.getInstance(ImagenLabel,null);
              im.scaleAbsolute(530,230);
              pdfApr.add(new Paragraph("\n\n"));
              pdfApr.add(im);
              /**FIN INTANCIAS RT**/
              /**PERMANENCIA**/
               pdfApr.newPage();
              pdfApr.add(new Paragraph("PERMANENCIA\n\n",
                                FontFactory.getFont("arial",   // fuente
				15,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color
               pdfApr.add(new Paragraph("Retencion de Alumnos\n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));
                 pdfApr.add(new Paragraph("                   Tabla de Resumen  - Retencion de ALumnos\n\n",
                                FontFactory.getFont("arial",   // fuente
				10,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));             // color
              PdfPTable TablaPorAsignatura = new PdfPTable(4);
              TablaPorAsignatura.addCell("Periodo"); //ENCABEZADO DE TABLA
              TablaPorAsignatura.addCell("Inscritos en Periodo");
              TablaPorAsignatura.addCell("Alumnos Primer Año");
              TablaPorAsignatura.addCell("Nivel de Retención (%)");
              for(int z=0; z<TablaPyRTRetencion.getRowCount();z++){ //LLENA TABLA CON VALORES
                for(int i=0; i<4;i++){
                        TablaPorAsignatura.addCell(TablaPyRTRetencion.getValueAt(z, i).toString());
                }
              }
              Icon icon1  = new ImageIcon();
              icon1 = LabelGraficoRetencionAlumnos.getIcon();
              BufferedImage image1 = new BufferedImage(icon1.getIconWidth(),icon1.getIconHeight(), BufferedImage.TYPE_INT_RGB);
              icon1.paintIcon(null, image1.getGraphics(), 0, 0);
              java.awt.Image ImagenLabel1 = image1;
//              ImagenLabel.getScaledInstance(400, 300, 1);
              Image im1 = com.itextpdf.text.Image.getInstance(ImagenLabel1,null);
              im1.scaleAbsolute(530,500);
              pdfApr.add(TablaPorAsignatura);//AGREGA TABLA DE PERIODO
              pdfApr.add(new Paragraph("\n\n"));
              pdfApr.add(im1);

              /**FIN RETENCION**/
              /**TASA TITULACION**/
               pdfApr.newPage();
              pdfApr.add(new Paragraph("Tasa de Titulacion \n\n",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color
               pdfApr.add(new Paragraph("                   Tabla de Resumen  - Tasa Titulacion\n\n",
                                FontFactory.getFont("arial",   // fuente
				10,                            // tamaño
				Font.NORMAL,                   // estilo
				BaseColor.BLACK)));             // color
              PdfPTable TablaPorAreaConocimiento = new PdfPTable(4);
              TablaPorAreaConocimiento.addCell("Promoción / Cohorte"); //ENCABEZADO DE TABLA
              TablaPorAreaConocimiento.addCell("Año Egreso");
              TablaPorAreaConocimiento.addCell("Cantidad Titulados");
              TablaPorAreaConocimiento.addCell("Tasa Titulación");
              for(int z=0; z<TablaTasaTitulacion.getRowCount();z++){ //LLENA TABLA CON VALORES
                for(int i=0; i<4;i++){
                        TablaPorAreaConocimiento.addCell(TablaTasaTitulacion.getValueAt(z, i).toString());
                }
              }
              Icon icon2  = new ImageIcon();
              icon2 = LabelGraficoTasaTitulacion.getIcon();
              BufferedImage image2 = new BufferedImage(icon2.getIconWidth(),icon2.getIconHeight(), BufferedImage.TYPE_INT_RGB);
              icon2.paintIcon(null, image2.getGraphics(), 0, 0);
              java.awt.Image ImagenLabel2 = image2;
//              ImagenLabel.getScaledInstance(400, 300, 1);
              Image im2 = com.itextpdf.text.Image.getInstance(ImagenLabel2,null);
              im2.scaleAbsolute(530,500);
              pdfApr.add(TablaPorAreaConocimiento);//AGREGA TABLA DE PERIODO
              pdfApr.add(new Paragraph("\n\n"));
              pdfApr.add(im2);

              /**FIN TASA TITULACION**/

              /**DATOS POR PROFESOR**/
              pdfApr.newPage();
              pdfApr.add(new Paragraph("\n\n\nDURACION PROMEDIO DEL PLAN DE ESTUDIOS   <<"+ DuracionPlanEstudios.getText()+">> Años",
                                FontFactory.getFont("arial",   // fuente
				14,                            // tamaño
				Font.BOLD,                   // estilo
				BaseColor.BLACK)));             // color
              
              /**FIN DATOS POR PROFESOR**/
              pdfApr.close();
              JOptionPane.showMessageDialog(null, "Se ha generado Documento PDF. \n Guardado Exitosamente en "+view.getDefaultDirectory());

}

/*##########################################*/
/*
/*DETALLE DE REPORTES y ABOUT BOX
/*
/*#########################################*/



@Action
public void DetalleAprobacion() {

        JDialog DetalleAprobacion = null;
        if (DetalleAprobacion == null) {
            JFrame mainFrame = SistemaTesisApp.getApplication().getMainFrame();
            DetalleAprobacion = new DetalleAprobacionView(mainFrame);
            DetalleAprobacion.setLocationRelativeTo(mainFrame);
        }
        SistemaTesisApp.getApplication().show(DetalleAprobacion);
       
}
@Action
public void Detalle2daInstancia() {

        JDialog Detalle2daInstancia = null;
        if (Detalle2daInstancia == null) {
            JFrame mainFrame = SistemaTesisApp.getApplication().getMainFrame();
            Detalle2daInstancia = new DetalleRPR2daView(mainFrame);
            Detalle2daInstancia.setLocationRelativeTo(mainFrame);
        }
        SistemaTesisApp.getApplication().show(Detalle2daInstancia);

}

@Action
public void DetalleMasDe2daInstancia() {

        JDialog DetalleMas2daInstancia = null;
        if (DetalleMas2daInstancia == null) {
            JFrame mainFrame = SistemaTesisApp.getApplication().getMainFrame();
            DetalleMas2daInstancia = new DetalleRPRmas2daView(mainFrame);
            DetalleMas2daInstancia.setLocationRelativeTo(mainFrame);
        }
        SistemaTesisApp.getApplication().show(DetalleMas2daInstancia);

}

@Action
public void DetalleElimAusent() {

        JDialog DetalleRutsAusentismo = null;
        if (DetalleRutsAusentismo == null) {
            JFrame mainFrame = SistemaTesisApp.getApplication().getMainFrame();
            DetalleRutsAusentismo = new DetalleElimAusentismoView(mainFrame);
            DetalleRutsAusentismo.setLocationRelativeTo(mainFrame);
        }
        SistemaTesisApp.getApplication().show(DetalleRutsAusentismo);

}
@Action
public void DetalleElimCredit() {

        JDialog DetalleRutsCreditos = null;
        if (DetalleRutsCreditos == null) {
            JFrame mainFrame = SistemaTesisApp.getApplication().getMainFrame();
            DetalleRutsCreditos = new DetalleElimCreditosView(mainFrame);
            DetalleRutsCreditos.setLocationRelativeTo(mainFrame);
        }
        SistemaTesisApp.getApplication().show(DetalleRutsCreditos);

}

@Action
public void DetalleReprobacion() {

        JDialog DetalleReprobacion = null;
        if (DetalleReprobacion == null) {
            JFrame mainFrame = SistemaTesisApp.getApplication().getMainFrame();
            DetalleReprobacion = new DetalleReprobacionView(mainFrame);
            DetalleReprobacion.setLocationRelativeTo(mainFrame);
        }
        SistemaTesisApp.getApplication().show(DetalleReprobacion);

}

@Action
public void DetalleRenuncia() {

        JDialog DetalleRenuncia = null;
        if (DetalleRenuncia == null) {
            JFrame mainFrame = SistemaTesisApp.getApplication().getMainFrame();
            DetalleRenuncia = new DetalleRenunciaView(mainFrame);
            DetalleRenuncia.setLocationRelativeTo(mainFrame);
        }
        SistemaTesisApp.getApplication().show(DetalleRenuncia);

}
@Action
public void showAboutBox() {
        if (aboutBox == null) {
            JFrame mainFrame = SistemaTesisApp.getApplication().getMainFrame();
            aboutBox = new SistemaTesisAboutBox(mainFrame);
            aboutBox.setLocationRelativeTo(mainFrame);
        }
        SistemaTesisApp.getApplication().show(aboutBox);
    }

public void ProcesaDatosMalla() throws FileNotFoundException, IOException, NoSuchFieldException{
        if(UrlMalla==null||UrlMalla.equals("")){
            JOptionPane.showMessageDialog(null,"Debe Seleccionar datos de Plan Curricular","Error",JOptionPane.ERROR_MESSAGE);
        }
        String ruta1 = UrlMalla;
       TotalCreditosPlan=0;
        HSSFWorkbook libro1 = new HSSFWorkbook(new FileInputStream(ruta1));
        HSSFSheet hoja1 = libro1.getSheet(libro1.getSheetName(0));
        HSSFRow row = null;
        HSSFCell cell = null;
        DefaultTableModel temp =(DefaultTableModel)TablaMalla.getModel();
        temp.setRowCount(1);

        for ( int i=1, z=hoja1.getLastRowNum(); i<z; i++ )
        {
             
            TablaMalla.setModel(temp);
            Object nuevo[] = {"","","",""};
            temp.addRow(nuevo);
            row = hoja1.getRow(i);
            Double auxx= Double.valueOf(row.getCell(1).toString().replace(" ", "").trim());
            TotalCreditosPlan=TotalCreditosPlan+auxx.intValue();
            if (row != null) {
//            System.out.print("\n" + i + "\t");
            for (int ii=0, zz=row.getLastCellNum(); ii<zz; ii++)
                {
                    cell = row.getCell((short) ii);
                        if (cell != null) {
                        // Imprimimos por pantalla el contenido de la celda seleccionada

           if (HSSFCell.CELL_TYPE_STRING == cell.getCellType()){

                TablaMalla.setValueAt(cell.getStringCellValue(),i,ii);
           }
            if (HSSFCell.CELL_TYPE_NUMERIC == cell.getCellType()){
                 Integer aux = (int)cell.getNumericCellValue();
                TablaMalla.setValueAt(aux,i,ii);
            }
          }
      }
    }
  }

}
    
@SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        mainPanel = new javax.swing.JPanel();
        PanelOpcionesScroll = new javax.swing.JScrollPane();
        PanelOpciones = new javax.swing.JPanel();
        Ano_Desde = new javax.swing.JTextField();
        Ano_Hasta = new javax.swing.JTextField();
        Periodo_Desde = new javax.swing.JTextField();
        Periodo_Hasta = new javax.swing.JTextField();
        jSeparator1 = new javax.swing.JSeparator();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        jLabel9 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        jButton18 = new javax.swing.JButton();
        TabsPanel = new javax.swing.JScrollPane();
        PanelGeneralReportes = new javax.swing.JTabbedPane();
        Datos_Generales = new javax.swing.JScrollPane();
        jPanel4 = new javax.swing.JPanel();
        jLabel14 = new javax.swing.JLabel();
        CodigoCarrera = new javax.swing.JTextField();
        jLabel15 = new javax.swing.JLabel();
        jLabel16 = new javax.swing.JLabel();
        Universidad = new javax.swing.JLabel();
        jLabel18 = new javax.swing.JLabel();
        Sede = new javax.swing.JComboBox();
        Regimen = new javax.swing.JComboBox();
        jLabel19 = new javax.swing.JLabel();
        Modalidad = new javax.swing.JComboBox();
        jLabel20 = new javax.swing.JLabel();
        DuracionPrograma = new javax.swing.JTextField();
        jLabel21 = new javax.swing.JLabel();
        jLabel22 = new javax.swing.JLabel();
        TotalHoras = new javax.swing.JTextField();
        jLabel23 = new javax.swing.JLabel();
        jLabel24 = new javax.swing.JLabel();
        AnoComienzoCarrera = new javax.swing.JTextField();
        jSeparator11 = new javax.swing.JSeparator();
        jScrollPane1 = new javax.swing.JScrollPane();
        TablaAsignaturas = new javax.swing.JTable();
        jLabel25 = new javax.swing.JLabel();
        jSeparator12 = new javax.swing.JSeparator();
        jLabel26 = new javax.swing.JLabel();
        jLabel27 = new javax.swing.JLabel();
        jSeparator13 = new javax.swing.JSeparator();
        jScrollPane2 = new javax.swing.JScrollPane();
        TablaMalla = new javax.swing.JTable();
        jSeparator17 = new javax.swing.JSeparator();
        jScrollPane3 = new javax.swing.JScrollPane();
        TablaRenuncias = new javax.swing.JTable();
        jLabel28 = new javax.swing.JLabel();
        jLabel41 = new javax.swing.JLabel();
        jLabel44 = new javax.swing.JLabel();
        jLabel47 = new javax.swing.JLabel();
        NombreCarrera = new javax.swing.JTextField();
        jLabel48 = new javax.swing.JLabel();
        jLabel17 = new javax.swing.JLabel();
        NombreUniversidad = new javax.swing.JLabel();
        AprobacionPane = new javax.swing.JScrollPane();
        PanelPrincipalAprobacion = new javax.swing.JPanel();
        jLabel10 = new javax.swing.JLabel();
        jLabel11 = new javax.swing.JLabel();
        PorcentAprReport = new javax.swing.JTextField();
        jLabel12 = new javax.swing.JLabel();
        jButton14 = new javax.swing.JButton();
        jLabel13 = new javax.swing.JLabel();
        jLabel30 = new javax.swing.JLabel();
        jLabel31 = new javax.swing.JLabel();
        jLabel32 = new javax.swing.JLabel();
        Aprobados1instan = new javax.swing.JTextField();
        jLabel34 = new javax.swing.JLabel();
        TotalAsignaturas = new javax.swing.JTextField();
        jLabel35 = new javax.swing.JLabel();
        jLabel36 = new javax.swing.JLabel();
        SegundaInstanciaField = new javax.swing.JTextField();
        jLabel38 = new javax.swing.JLabel();
        MasDeSegundaField = new javax.swing.JTextField();
        jLabel40 = new javax.swing.JLabel();
        PrimeraInstanciaField = new javax.swing.JTextField();
        LabelGraficoPeriodo = new javax.swing.JLabel();
        LabelGraficoAprAsignatura = new javax.swing.JLabel();
        jLabel29 = new javax.swing.JLabel();
        LabelGraficoAprPeriodo = new javax.swing.JLabel();
        jScrollPane5 = new javax.swing.JScrollPane();
        TablaAprPeriodo = new javax.swing.JTable();
        LabelGraficoAprProfesor = new javax.swing.JLabel();
        jScrollPane4 = new javax.swing.JScrollPane();
        TablaAprAsignatura = new javax.swing.JTable();
        LabelGraficoAprAreaConocimiento = new javax.swing.JLabel();
        jScrollPane6 = new javax.swing.JScrollPane();
        TablaAprProfesor = new javax.swing.JTable();
        jSeparator3 = new javax.swing.JSeparator();
        jSeparator4 = new javax.swing.JSeparator();
        jSeparator5 = new javax.swing.JSeparator();
        jSeparator9 = new javax.swing.JSeparator();
        jSeparator10 = new javax.swing.JSeparator();
        jSeparator18 = new javax.swing.JSeparator();
        jLabel33 = new javax.swing.JLabel();
        jLabel37 = new javax.swing.JLabel();
        jLabel39 = new javax.swing.JLabel();
        PorcentajePrimeraInstancia = new javax.swing.JTextField();
        PorcentajeMasDeSegundaInstancia = new javax.swing.JTextField();
        PorcentajeSegundaInstancia1 = new javax.swing.JTextField();
        jLabel42 = new javax.swing.JLabel();
        jLabel43 = new javax.swing.JLabel();
        jLabel45 = new javax.swing.JLabel();
        jLabel62 = new javax.swing.JLabel();
        jLabel63 = new javax.swing.JLabel();
        jLabel64 = new javax.swing.JLabel();
        jLabel72 = new javax.swing.JLabel();
        jSeparator29 = new javax.swing.JSeparator();
        jScrollPane13 = new javax.swing.JScrollPane();
        TablaAprAreaDeConocimiento = new javax.swing.JTable();
        LabelGraficoAprAsig1 = new javax.swing.JLabel();
        jLabel73 = new javax.swing.JLabel();
        BotonGeneraAprobacion = new javax.swing.JButton();
        ImprimirApr = new javax.swing.JButton();
        jLabel99 = new javax.swing.JLabel();
        jLabel100 = new javax.swing.JLabel();
        jLabel101 = new javax.swing.JLabel();
        jLabel102 = new javax.swing.JLabel();
        jLabel103 = new javax.swing.JLabel();
        jLabel104 = new javax.swing.JLabel();
        ReprobacionPane = new javax.swing.JScrollPane();
        PanelPrincipalReprobacion = new javax.swing.JPanel();
        jLabel46 = new javax.swing.JLabel();
        jLabel49 = new javax.swing.JLabel();
        PorcentRprReport = new javax.swing.JTextField();
        jLabel50 = new javax.swing.JLabel();
        jButton15 = new javax.swing.JButton();
        jLabel51 = new javax.swing.JLabel();
        jLabel52 = new javax.swing.JLabel();
        LabelGraficoPeriodo1 = new javax.swing.JLabel();
        LabelGraficoAprAsignatura1 = new javax.swing.JLabel();
        jLabel70 = new javax.swing.JLabel();
        LabelGraficoRprPeriodo = new javax.swing.JLabel();
        jScrollPane7 = new javax.swing.JScrollPane();
        TablaRprPeriodo = new javax.swing.JTable();
        LabelGraficoRprProfesor = new javax.swing.JLabel();
        jScrollPane8 = new javax.swing.JScrollPane();
        TablaRprAsignatura = new javax.swing.JTable();
        LabelGraficoRprAreaConocimiento = new javax.swing.JLabel();
        jScrollPane9 = new javax.swing.JScrollPane();
        TablaRprProfesor = new javax.swing.JTable();
        jSeparator19 = new javax.swing.JSeparator();
        jSeparator20 = new javax.swing.JSeparator();
        jSeparator21 = new javax.swing.JSeparator();
        jSeparator22 = new javax.swing.JSeparator();
        jSeparator23 = new javax.swing.JSeparator();
        jLabel76 = new javax.swing.JLabel();
        jLabel78 = new javax.swing.JLabel();
        jLabel79 = new javax.swing.JLabel();
        jLabel80 = new javax.swing.JLabel();
        jLabel81 = new javax.swing.JLabel();
        jLabel82 = new javax.swing.JLabel();
        jSeparator31 = new javax.swing.JSeparator();
        jScrollPane14 = new javax.swing.JScrollPane();
        TablaRprAreaDeConocimiento = new javax.swing.JTable();
        LabelGraficoRprAsig = new javax.swing.JLabel();
        jLabel83 = new javax.swing.JLabel();
        jButton10 = new javax.swing.JButton();
        ImprimirRpr = new javax.swing.JButton();
        RenunciaPane = new javax.swing.JScrollPane();
        PanelPrincipalRenuncia = new javax.swing.JPanel();
        jLabel53 = new javax.swing.JLabel();
        jLabel54 = new javax.swing.JLabel();
        PorcentRenReport = new javax.swing.JTextField();
        jLabel56 = new javax.swing.JLabel();
        jLabel57 = new javax.swing.JLabel();
        LabelGraficoPeriodo2 = new javax.swing.JLabel();
        LabelGraficoAprAsignatura2 = new javax.swing.JLabel();
        jLabel68 = new javax.swing.JLabel();
        LabelGraficoRenPeriodo = new javax.swing.JLabel();
        jScrollPane10 = new javax.swing.JScrollPane();
        TablaRenPeriodo = new javax.swing.JTable();
        LabelGraficoRenProfesor = new javax.swing.JLabel();
        jScrollPane11 = new javax.swing.JScrollPane();
        TablaRenAsignatura = new javax.swing.JTable();
        LabelGraficoRenAreaConocimiento = new javax.swing.JLabel();
        jScrollPane12 = new javax.swing.JScrollPane();
        TablaRenProfesor = new javax.swing.JTable();
        jSeparator24 = new javax.swing.JSeparator();
        jSeparator25 = new javax.swing.JSeparator();
        jSeparator26 = new javax.swing.JSeparator();
        jSeparator27 = new javax.swing.JSeparator();
        jSeparator28 = new javax.swing.JSeparator();
        jLabel75 = new javax.swing.JLabel();
        jLabel84 = new javax.swing.JLabel();
        jLabel85 = new javax.swing.JLabel();
        jLabel86 = new javax.swing.JLabel();
        jLabel87 = new javax.swing.JLabel();
        jLabel88 = new javax.swing.JLabel();
        jSeparator32 = new javax.swing.JSeparator();
        jScrollPane15 = new javax.swing.JScrollPane();
        TablaRenAreaDeConocimiento = new javax.swing.JTable();
        LabelGraficoRenAsig = new javax.swing.JLabel();
        jLabel89 = new javax.swing.JLabel();
        jButton12 = new javax.swing.JButton();
        ImprimirRen = new javax.swing.JButton();
        jLabel55 = new javax.swing.JLabel();
        jLabel121 = new javax.swing.JLabel();
        TotalAsignaturasInscritasRen = new javax.swing.JTextField();
        Causales_Eliminacion = new javax.swing.JScrollPane();
        PanelPrincipalEliminacion = new javax.swing.JPanel();
        jLabel58 = new javax.swing.JLabel();
        jLabel59 = new javax.swing.JLabel();
        CantPerdidasCea = new javax.swing.JTextField();
        jLabel60 = new javax.swing.JLabel();
        jLabel61 = new javax.swing.JLabel();
        LabelGraficoPeriodo3 = new javax.swing.JLabel();
        LabelGraficoAprAsignatura3 = new javax.swing.JLabel();
        jLabel69 = new javax.swing.JLabel();
        LabelGraficoCeaPeriodo = new javax.swing.JLabel();
        jScrollPane17 = new javax.swing.JScrollPane();
        TablaCeaAsignatura = new javax.swing.JTable();
        LabelGraficoCeaAreaConocimiento = new javax.swing.JLabel();
        jScrollPane18 = new javax.swing.JScrollPane();
        TablaCeaPeriodo = new javax.swing.JTable();
        jSeparator30 = new javax.swing.JSeparator();
        jSeparator33 = new javax.swing.JSeparator();
        jSeparator34 = new javax.swing.JSeparator();
        jSeparator35 = new javax.swing.JSeparator();
        jSeparator36 = new javax.swing.JSeparator();
        jLabel77 = new javax.swing.JLabel();
        jLabel90 = new javax.swing.JLabel();
        jLabel91 = new javax.swing.JLabel();
        jLabel92 = new javax.swing.JLabel();
        jLabel93 = new javax.swing.JLabel();
        jLabel94 = new javax.swing.JLabel();
        jSeparator37 = new javax.swing.JSeparator();
        jScrollPane19 = new javax.swing.JScrollPane();
        TablaCeaAreaDeConocimiento = new javax.swing.JTable();
        LabelGraficoCeaAsignatura = new javax.swing.JLabel();
        jLabel95 = new javax.swing.JLabel();
        jButton20 = new javax.swing.JButton();
        ImprimirCea = new javax.swing.JButton();
        jLabel65 = new javax.swing.JLabel();
        jLabel66 = new javax.swing.JLabel();
        jLabel67 = new javax.swing.JLabel();
        jLabel71 = new javax.swing.JLabel();
        jLabel74 = new javax.swing.JLabel();
        jSeparator38 = new javax.swing.JSeparator();
        CeaAusentismo = new javax.swing.JTextField();
        CeaSegundaInstancia = new javax.swing.JTextField();
        CeaMasDeSegundaInstancia = new javax.swing.JTextField();
        CeaBajoCredito = new javax.swing.JTextField();
        GraficoCeaCausales = new javax.swing.JLabel();
        jLabel96 = new javax.swing.JLabel();
        TotalAsigInscritasCea = new javax.swing.JTextField();
        jLabel97 = new javax.swing.JLabel();
        CantAlumnInscrCea = new javax.swing.JTextField();
        jLabel98 = new javax.swing.JLabel();
        jButton4 = new javax.swing.JButton();
        jButton6 = new javax.swing.JButton();
        jButton7 = new javax.swing.JButton();
        jButton9 = new javax.swing.JButton();
        Retiros_Temporales = new javax.swing.JScrollPane();
        PanelPrincipalPRT = new javax.swing.JPanel();
        jLabel105 = new javax.swing.JLabel();
        jLabel106 = new javax.swing.JLabel();
        NivelRetirosTemporales = new javax.swing.JTextField();
        jLabel107 = new javax.swing.JLabel();
        LabelGraficoPeriodo4 = new javax.swing.JLabel();
        LabelGraficoAprAsignatura4 = new javax.swing.JLabel();
        jLabel109 = new javax.swing.JLabel();
        jScrollPane20 = new javax.swing.JScrollPane();
        TablaPyRTRetencion = new javax.swing.JTable();
        LabelGraficoTasaTitulacion = new javax.swing.JLabel();
        jSeparator39 = new javax.swing.JSeparator();
        jSeparator40 = new javax.swing.JSeparator();
        jSeparator41 = new javax.swing.JSeparator();
        jSeparator42 = new javax.swing.JSeparator();
        jSeparator43 = new javax.swing.JSeparator();
        jLabel110 = new javax.swing.JLabel();
        jLabel111 = new javax.swing.JLabel();
        jLabel112 = new javax.swing.JLabel();
        jLabel113 = new javax.swing.JLabel();
        jLabel114 = new javax.swing.JLabel();
        jLabel115 = new javax.swing.JLabel();
        jScrollPane22 = new javax.swing.JScrollPane();
        TablaTasaTitulacion = new javax.swing.JTable();
        LabelGraficoRetencionAlumnos = new javax.swing.JLabel();
        jLabel116 = new javax.swing.JLabel();
        jButton21 = new javax.swing.JButton();
        ImprimirPRT = new javax.swing.JButton();
        jLabel117 = new javax.swing.JLabel();
        jLabel118 = new javax.swing.JLabel();
        jLabel119 = new javax.swing.JLabel();
        jLabel120 = new javax.swing.JLabel();
        jSeparator45 = new javax.swing.JSeparator();
        RT1Semestre = new javax.swing.JTextField();
        RT2Semestres = new javax.swing.JTextField();
        RT3SemestresAlt = new javax.swing.JTextField();
        LabelGraficoPyRTRetiros = new javax.swing.JLabel();
        jLabel122 = new javax.swing.JLabel();
        CantidadAlumnosInscritosPRT = new javax.swing.JTextField();
        jLabel123 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel108 = new javax.swing.JLabel();
        DuracionPlanEstudios = new javax.swing.JTextField();
        jLabel125 = new javax.swing.JLabel();
        jSeparator44 = new javax.swing.JSeparator();
        jLabel124 = new javax.swing.JLabel();
        jToolBar1 = new javax.swing.JToolBar();
        jSeparator15 = new javax.swing.JToolBar.Separator();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        jSeparator14 = new javax.swing.JToolBar.Separator();
        jButton5 = new javax.swing.JButton();
        jSeparator16 = new javax.swing.JToolBar.Separator();
        statusPanel = new javax.swing.JPanel();
        javax.swing.JSeparator statusPanelSeparator = new javax.swing.JSeparator();
        statusMessageLabel = new javax.swing.JLabel();
        statusAnimationLabel = new javax.swing.JLabel();
        progressBar = new javax.swing.JProgressBar();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jMenu4 = new javax.swing.JMenu();
        jMenuItem3 = new javax.swing.JMenuItem();
        jMenuItem4 = new javax.swing.JMenuItem();
        jMenuItem5 = new javax.swing.JMenuItem();
        jSeparator6 = new javax.swing.JPopupMenu.Separator();
        jMenu3 = new javax.swing.JMenu();
        jMenuItem1 = new javax.swing.JMenuItem();
        jMenuItem16 = new javax.swing.JMenuItem();
        jMenuItem17 = new javax.swing.JMenuItem();
        jMenuItem15 = new javax.swing.JMenuItem();
        jMenuItem18 = new javax.swing.JMenuItem();
        jSeparator7 = new javax.swing.JPopupMenu.Separator();
        jMenuItem2 = new javax.swing.JMenuItem();
        jMenu2 = new javax.swing.JMenu();
        jMenu5 = new javax.swing.JMenu();
        jMenuItem7 = new javax.swing.JMenuItem();
        jMenuItem8 = new javax.swing.JMenuItem();
        jMenuItem9 = new javax.swing.JMenuItem();
        jMenuItem10 = new javax.swing.JMenuItem();
        jMenuItem11 = new javax.swing.JMenuItem();
        jSeparator8 = new javax.swing.JPopupMenu.Separator();
        jMenu6 = new javax.swing.JMenu();
        jMenuItem14 = new javax.swing.JMenuItem();
        jLabel5 = new javax.swing.JLabel();
        jButton8 = new javax.swing.JButton();

        org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(sistematesis.SistemaTesisApp.class).getContext().getResourceMap(SistemaTesisView.class);
        mainPanel.setBackground(resourceMap.getColor("mainPanel.background")); // NOI18N
        mainPanel.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
        mainPanel.setName("mainPanel"); // NOI18N
        mainPanel.setPreferredSize(new java.awt.Dimension(600, 400));

        PanelOpcionesScroll.setName("PanelOpcionesScroll"); // NOI18N

        PanelOpciones.setBackground(resourceMap.getColor("PanelOpciones.background")); // NOI18N
        PanelOpciones.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("PanelOpciones.border.title"))); // NOI18N
        PanelOpciones.setName("PanelOpciones"); // NOI18N
        PanelOpciones.setPreferredSize(new java.awt.Dimension(250, 600));

        Ano_Desde.setText(resourceMap.getString("Ano_Desde.text")); // NOI18N
        Ano_Desde.setName("Ano_Desde"); // NOI18N

        Ano_Hasta.setText(resourceMap.getString("Ano_Hasta.text")); // NOI18N
        Ano_Hasta.setName("Ano_Hasta"); // NOI18N

        Periodo_Desde.setText(resourceMap.getString("Periodo_Desde.text")); // NOI18N
        Periodo_Desde.setName("Periodo_Desde"); // NOI18N

        Periodo_Hasta.setName("Periodo_Hasta"); // NOI18N

        jSeparator1.setName("jSeparator1"); // NOI18N

        jLabel1.setFont(resourceMap.getFont("jLabel1.font")); // NOI18N
        jLabel1.setText(resourceMap.getString("jLabel1.text")); // NOI18N
        jLabel1.setName("jLabel1"); // NOI18N

        jLabel2.setFont(resourceMap.getFont("jLabel2.font")); // NOI18N
        jLabel2.setText(resourceMap.getString("jLabel2.text")); // NOI18N
        jLabel2.setName("jLabel2"); // NOI18N

        jLabel3.setFont(resourceMap.getFont("jLabel3.font")); // NOI18N
        jLabel3.setText(resourceMap.getString("jLabel3.text")); // NOI18N
        jLabel3.setName("jLabel3"); // NOI18N

        jLabel8.setText(resourceMap.getString("jLabel8.text")); // NOI18N
        jLabel8.setName("jLabel8"); // NOI18N

        jLabel9.setText(resourceMap.getString("jLabel9.text")); // NOI18N
        jLabel9.setName("jLabel9"); // NOI18N

        jLabel6.setFont(resourceMap.getFont("jLabel6.font")); // NOI18N
        jLabel6.setText(resourceMap.getString("jLabel6.text")); // NOI18N
        jLabel6.setName("jLabel6"); // NOI18N

        jLabel7.setFont(resourceMap.getFont("jLabel7.font")); // NOI18N
        jLabel7.setText(resourceMap.getString("jLabel7.text")); // NOI18N
        jLabel7.setName("jLabel7"); // NOI18N

        javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(sistematesis.SistemaTesisApp.class).getContext().getActionMap(SistemaTesisView.class, this);
        jButton18.setAction(actionMap.get("ProcesaDatosAsignaturas")); // NOI18N
        jButton18.setIcon(resourceMap.getIcon("jButton18.icon")); // NOI18N
        jButton18.setText(resourceMap.getString("jButton18.text")); // NOI18N
        jButton18.setToolTipText(resourceMap.getString("jButton18.toolTipText")); // NOI18N
        jButton18.setName("jButton18"); // NOI18N

        javax.swing.GroupLayout PanelOpcionesLayout = new javax.swing.GroupLayout(PanelOpciones);
        PanelOpciones.setLayout(PanelOpcionesLayout);
        PanelOpcionesLayout.setHorizontalGroup(
            PanelOpcionesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(PanelOpcionesLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(PanelOpcionesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(PanelOpcionesLayout.createSequentialGroup()
                        .addComponent(jLabel1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 64, Short.MAX_VALUE))
                    .addGroup(PanelOpcionesLayout.createSequentialGroup()
                        .addComponent(jLabel2)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabel6))
                    .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(PanelOpcionesLayout.createSequentialGroup()
                        .addComponent(jLabel3)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(PanelOpcionesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel7)
                            .addComponent(jButton18)
                            .addGroup(PanelOpcionesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                .addGroup(PanelOpcionesLayout.createSequentialGroup()
                                    .addComponent(Ano_Desde, javax.swing.GroupLayout.DEFAULT_SIZE, 122, Short.MAX_VALUE)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(jLabel8)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(Periodo_Desde, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addGroup(PanelOpcionesLayout.createSequentialGroup()
                                    .addComponent(Ano_Hasta, javax.swing.GroupLayout.DEFAULT_SIZE, 122, Short.MAX_VALUE)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(jLabel9)
                                    .addGap(4, 4, 4)
                                    .addComponent(Periodo_Hasta, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE))))
                        .addGap(131, 131, 131)))
                .addContainerGap())
        );
        PanelOpcionesLayout.setVerticalGroup(
            PanelOpcionesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(PanelOpcionesLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(PanelOpcionesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(Periodo_Desde, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel8)
                    .addComponent(Ano_Desde, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel6)
                .addGap(24, 24, 24)
                .addGroup(PanelOpcionesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(jLabel9)
                    .addComponent(Periodo_Hasta, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(Ano_Hasta, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel7)
                .addGap(29, 29, 29)
                .addComponent(jButton18, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(499, Short.MAX_VALUE))
        );

        PanelOpcionesScroll.setViewportView(PanelOpciones);

        TabsPanel.setName("TabsPanel"); // NOI18N

        PanelGeneralReportes.setToolTipText(resourceMap.getString("PanelGeneralReportes.toolTipText")); // NOI18N
        PanelGeneralReportes.setAutoscrolls(true);
        PanelGeneralReportes.setName("PanelGeneralReportes"); // NOI18N
        PanelGeneralReportes.setPreferredSize(new java.awt.Dimension(807, 4000));

        Datos_Generales.setAutoscrolls(true);
        Datos_Generales.setName("Datos_Generales"); // NOI18N
        Datos_Generales.setPreferredSize(new java.awt.Dimension(602, 800));
        Datos_Generales.setRequestFocusEnabled(false);
        Datos_Generales.setWheelScrollingEnabled(false);

        jPanel4.setAutoscrolls(true);
        jPanel4.setName("Panel_ de_ Reportes"); // NOI18N
        jPanel4.setPreferredSize(new java.awt.Dimension(600, 700));

        jLabel14.setFont(resourceMap.getFont("jLabel14.font")); // NOI18N
        jLabel14.setText(resourceMap.getString("jLabel14.text")); // NOI18N
        jLabel14.setName("jLabel14"); // NOI18N

        CodigoCarrera.setBackground(resourceMap.getColor("CodigoCarrera.background")); // NOI18N
        CodigoCarrera.setName("CodigoCarrera"); // NOI18N

        jLabel15.setFont(resourceMap.getFont("jLabel15.font")); // NOI18N
        jLabel15.setText(resourceMap.getString("jLabel15.text")); // NOI18N
        jLabel15.setName("jLabel15"); // NOI18N

        jLabel16.setFont(resourceMap.getFont("jLabel16.font")); // NOI18N
        jLabel16.setText(resourceMap.getString("jLabel16.text")); // NOI18N
        jLabel16.setName("jLabel16"); // NOI18N

        Universidad.setName("Universidad"); // NOI18N

        jLabel18.setFont(resourceMap.getFont("jLabel18.font")); // NOI18N
        jLabel18.setText(resourceMap.getString("jLabel18.text")); // NOI18N
        jLabel18.setName("jLabel18"); // NOI18N

        Sede.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "", "Concepcion", "Chillan", "Los Angeles" }));
        Sede.setName("Sede"); // NOI18N

        Regimen.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "-", "Anual", "Semestral" }));
        Regimen.setName("Regimen"); // NOI18N

        jLabel19.setFont(resourceMap.getFont("jLabel19.font")); // NOI18N
        jLabel19.setText(resourceMap.getString("jLabel19.text")); // NOI18N
        jLabel19.setName("jLabel19"); // NOI18N

        Modalidad.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "", "Diurna", "Vespertina" }));
        Modalidad.setName("Modalidad"); // NOI18N

        jLabel20.setFont(resourceMap.getFont("jLabel20.font")); // NOI18N
        jLabel20.setText(resourceMap.getString("jLabel20.text")); // NOI18N
        jLabel20.setName("jLabel20"); // NOI18N

        DuracionPrograma.setText(resourceMap.getString("DuracionPrograma.text")); // NOI18N
        DuracionPrograma.setName("DuracionPrograma"); // NOI18N

        jLabel21.setText(resourceMap.getString("jLabel21.text")); // NOI18N
        jLabel21.setName("jLabel21"); // NOI18N

        jLabel22.setFont(resourceMap.getFont("jLabel22.font")); // NOI18N
        jLabel22.setText(resourceMap.getString("jLabel22.text")); // NOI18N
        jLabel22.setName("jLabel22"); // NOI18N

        TotalHoras.setName("TotalHoras"); // NOI18N

        jLabel23.setText(resourceMap.getString("jLabel23.text")); // NOI18N
        jLabel23.setName("jLabel23"); // NOI18N

        jLabel24.setFont(resourceMap.getFont("jLabel24.font")); // NOI18N
        jLabel24.setText(resourceMap.getString("jLabel24.text")); // NOI18N
        jLabel24.setName("jLabel24"); // NOI18N

        AnoComienzoCarrera.setColumns(4);
        AnoComienzoCarrera.setText(resourceMap.getString("AnoComienzoCarrera.text")); // NOI18N
        AnoComienzoCarrera.setName("AnoComienzoCarrera"); // NOI18N

        jSeparator11.setName("jSeparator11"); // NOI18N

        jScrollPane1.setName("jScrollPane1"); // NOI18N

        TablaAsignaturas.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null, null, null}
            },
            new String [] {
                "RUT", "Cod. Carrera", "Año Cursado", "Año Semestre", "Cod. Asignatura", "Sección", "Nombre Asignatura", "Calificación", "Estado", "Créditos", "Genérico", "Nombre Profesor"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.String.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.String.class, java.lang.String.class, java.lang.Integer.class, java.lang.String.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.String.class
            };
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false, false, false, false, false, false, false, false
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        TablaAsignaturas.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);
        TablaAsignaturas.setName("TablaAsignaturas"); // NOI18N
        TablaAsignaturas.getTableHeader().setReorderingAllowed(false);
        jScrollPane1.setViewportView(TablaAsignaturas);
        TablaAsignaturas.getColumnModel().getColumn(5).setHeaderValue(resourceMap.getString("TablaAsignaturas.columnModel.title11")); // NOI18N
        TablaAsignaturas.getColumnModel().getColumn(6).setHeaderValue(resourceMap.getString("TablaAsignaturas.columnModel.title5")); // NOI18N
        TablaAsignaturas.getColumnModel().getColumn(7).setHeaderValue(resourceMap.getString("TablaAsignaturas.columnModel.title6")); // NOI18N
        TablaAsignaturas.getColumnModel().getColumn(8).setHeaderValue(resourceMap.getString("TablaAsignaturas.columnModel.title7")); // NOI18N
        TablaAsignaturas.getColumnModel().getColumn(10).setHeaderValue(resourceMap.getString("TablaAsignaturas.columnModel.title12")); // NOI18N
        TablaAsignaturas.getColumnModel().getColumn(11).setHeaderValue(resourceMap.getString("TablaAsignaturas.columnModel.title10")); // NOI18N

        jLabel25.setFont(resourceMap.getFont("jLabel25.font")); // NOI18N
        jLabel25.setForeground(resourceMap.getColor("jLabel25.foreground")); // NOI18N
        jLabel25.setText(resourceMap.getString("jLabel25.text")); // NOI18N
        jLabel25.setName("jLabel25"); // NOI18N

        jSeparator12.setName("jSeparator12"); // NOI18N

        jLabel26.setFont(resourceMap.getFont("jLabel26.font")); // NOI18N
        jLabel26.setForeground(resourceMap.getColor("jLabel26.foreground")); // NOI18N
        jLabel26.setText(resourceMap.getString("jLabel26.text")); // NOI18N
        jLabel26.setName("jLabel26"); // NOI18N

        jLabel27.setFont(resourceMap.getFont("jLabel27.font")); // NOI18N
        jLabel27.setForeground(resourceMap.getColor("jLabel27.foreground")); // NOI18N
        jLabel27.setText(resourceMap.getString("jLabel27.text")); // NOI18N
        jLabel27.setName("jLabel27"); // NOI18N

        jSeparator13.setName("jSeparator13"); // NOI18N

        jScrollPane2.setName("jScrollPane2"); // NOI18N

        TablaMalla.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null, null},
                {null, null, null, null, null},
                {null, null, null, null, null},
                {null, null, null, null, null},
                {null, null, null, null, null},
                {null, null, null, null, null},
                {null, null, null, null, null},
                {null, null, null, null, null},
                {null, null, null, null, null},
                {null, null, null, null, null}
            },
            new String [] {
                "Semestre", "Créditos", "Código", "Nombre Asignatura", "Area del Conocimiento"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        TablaMalla.setName("TablaMalla"); // NOI18N
        TablaMalla.getTableHeader().setReorderingAllowed(false);
        jScrollPane2.setViewportView(TablaMalla);

        jSeparator17.setName("jSeparator17"); // NOI18N

        jScrollPane3.setName("jScrollPane3"); // NOI18N

        TablaRenuncias.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null}
            },
            new String [] {
                "RUT", "Cod. Carrera", "Año Cursado", "Año Semestre", "Cod. Asignatura", "Sección", "Nombre Asignatura", "Créditos", "Nombre Profesor", "Generico"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.String.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.String.class, java.lang.String.class, java.lang.Integer.class, java.lang.String.class, java.lang.Integer.class, java.lang.String.class, java.lang.Object.class
            };
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false, false, false, false, false, true
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        TablaRenuncias.setName("TablaRenuncias"); // NOI18N
        TablaRenuncias.getTableHeader().setReorderingAllowed(false);
        jScrollPane3.setViewportView(TablaRenuncias);
        TablaRenuncias.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("TablaRenuncias.columnModel.title0")); // NOI18N
        TablaRenuncias.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("TablaRenuncias.columnModel.title1")); // NOI18N
        TablaRenuncias.getColumnModel().getColumn(2).setHeaderValue(resourceMap.getString("TablaRenuncias.columnModel.title2")); // NOI18N
        TablaRenuncias.getColumnModel().getColumn(3).setResizable(false);
        TablaRenuncias.getColumnModel().getColumn(3).setHeaderValue(resourceMap.getString("TablaRenuncias.columnModel.title3")); // NOI18N
        TablaRenuncias.getColumnModel().getColumn(4).setHeaderValue(resourceMap.getString("TablaRenuncias.columnModel.title4")); // NOI18N
        TablaRenuncias.getColumnModel().getColumn(5).setHeaderValue(resourceMap.getString("TablaRenuncias.columnModel.title9")); // NOI18N
        TablaRenuncias.getColumnModel().getColumn(6).setHeaderValue(resourceMap.getString("TablaAsignaturas.columnModel.title5")); // NOI18N
        TablaRenuncias.getColumnModel().getColumn(7).setHeaderValue(resourceMap.getString("TablaRenuncias.columnModel.title7")); // NOI18N
        TablaRenuncias.getColumnModel().getColumn(8).setHeaderValue(resourceMap.getString("TablaRenuncias.columnModel.title7")); // NOI18N
        TablaRenuncias.getColumnModel().getColumn(9).setHeaderValue(resourceMap.getString("TablaRenuncias.columnModel.title9")); // NOI18N

        jLabel28.setFont(resourceMap.getFont("jLabel28.font")); // NOI18N
        jLabel28.setForeground(resourceMap.getColor("jLabel28.foreground")); // NOI18N
        jLabel28.setText(resourceMap.getString("jLabel28.text")); // NOI18N
        jLabel28.setName("jLabel28"); // NOI18N

        jLabel41.setForeground(resourceMap.getColor("jLabel41.foreground")); // NOI18N
        jLabel41.setText(resourceMap.getString("jLabel41.text")); // NOI18N
        jLabel41.setName("jLabel41"); // NOI18N

        jLabel44.setForeground(resourceMap.getColor("jLabel44.foreground")); // NOI18N
        jLabel44.setText(resourceMap.getString("jLabel44.text")); // NOI18N
        jLabel44.setName("jLabel44"); // NOI18N

        jLabel47.setFont(resourceMap.getFont("jLabel47.font")); // NOI18N
        jLabel47.setText(resourceMap.getString("jLabel47.text")); // NOI18N
        jLabel47.setName("jLabel47"); // NOI18N

        NombreCarrera.setText(resourceMap.getString("NombreCarrera.text")); // NOI18N
        NombreCarrera.setName("NombreCarrera"); // NOI18N

        jLabel48.setForeground(resourceMap.getColor("jLabel48.foreground")); // NOI18N
        jLabel48.setText(resourceMap.getString("jLabel48.text")); // NOI18N
        jLabel48.setName("jLabel48"); // NOI18N

        jLabel17.setFont(resourceMap.getFont("jLabel17.font")); // NOI18N
        jLabel17.setText(resourceMap.getString("jLabel17.text")); // NOI18N
        jLabel17.setName("jLabel17"); // NOI18N

        NombreUniversidad.setText(resourceMap.getString("NombreUniversidad.text")); // NOI18N
        NombreUniversidad.setName("NombreUniversidad"); // NOI18N

        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel4Layout.createSequentialGroup()
                .addGap(18, 18, 18)
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 897, Short.MAX_VALUE)
                    .addComponent(jSeparator17, javax.swing.GroupLayout.DEFAULT_SIZE, 897, Short.MAX_VALUE)
                    .addGroup(jPanel4Layout.createSequentialGroup()
                        .addComponent(jLabel28)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 734, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
            .addGroup(jPanel4Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 905, Short.MAX_VALUE)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 905, Short.MAX_VALUE)
                    .addGroup(jPanel4Layout.createSequentialGroup()
                        .addComponent(jLabel26)
                        .addContainerGap(729, Short.MAX_VALUE))
                    .addComponent(jSeparator12, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 905, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
                        .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel4Layout.createSequentialGroup()
                                .addComponent(jLabel25)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 760, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addComponent(jSeparator11, javax.swing.GroupLayout.DEFAULT_SIZE, 905, Short.MAX_VALUE))
                        .addContainerGap())
                    .addGroup(jPanel4Layout.createSequentialGroup()
                        .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jLabel24)
                            .addComponent(jLabel22)
                            .addComponent(jLabel19)
                            .addComponent(jLabel18)
                            .addComponent(jLabel16)
                            .addComponent(jLabel15)
                            .addComponent(jLabel14)
                            .addComponent(jLabel20)
                            .addComponent(jLabel47))
                        .addGap(18, 18, 18)
                        .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(Modalidad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(Universidad)
                            .addComponent(Sede, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                .addComponent(AnoComienzoCarrera, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 292, Short.MAX_VALUE)
                                .addGroup(jPanel4Layout.createSequentialGroup()
                                    .addComponent(DuracionPrograma, javax.swing.GroupLayout.DEFAULT_SIZE, 34, Short.MAX_VALUE)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                    .addComponent(jLabel21)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(jLabel44)
                                    .addGap(187, 187, 187))
                                .addComponent(jLabel17, javax.swing.GroupLayout.Alignment.LEADING))
                            .addGroup(jPanel4Layout.createSequentialGroup()
                                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                    .addComponent(CodigoCarrera, javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(Regimen, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel41))
                            .addGroup(jPanel4Layout.createSequentialGroup()
                                .addComponent(TotalHoras, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel23))
                            .addGroup(jPanel4Layout.createSequentialGroup()
                                .addComponent(NombreCarrera, javax.swing.GroupLayout.PREFERRED_SIZE, 274, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel48))
                            .addComponent(NombreUniversidad))
                        .addGap(453, 453, 453))
                    .addGroup(jPanel4Layout.createSequentialGroup()
                        .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jSeparator13, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 905, Short.MAX_VALUE)
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel4Layout.createSequentialGroup()
                                .addComponent(jLabel27)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 801, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addContainerGap())))
        );
        jPanel4Layout.setVerticalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel4Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel26)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jSeparator12, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel47)
                    .addComponent(NombreCarrera, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel48))
                .addGap(18, 18, 18)
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(CodigoCarrera, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel14))
                .addGap(26, 26, 26)
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(Regimen, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel15)
                    .addComponent(jLabel41))
                .addGap(18, 18, 18)
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(Universidad)
                    .addComponent(jLabel16)
                    .addComponent(NombreUniversidad))
                .addGap(18, 18, 18)
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(Sede, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel18))
                .addGap(18, 18, 18)
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(Modalidad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel19))
                .addGap(18, 18, 18)
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel20)
                    .addComponent(DuracionPrograma, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel21)
                    .addComponent(jLabel44))
                .addGap(18, 18, 18)
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel22)
                    .addComponent(jLabel23)
                    .addComponent(TotalHoras, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel24)
                    .addComponent(AnoComienzoCarrera, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel17)
                .addGap(45, 45, 45)
                .addComponent(jLabel25)
                .addGap(5, 5, 5)
                .addComponent(jSeparator11, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 293, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(33, 33, 33)
                .addComponent(jLabel28)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jSeparator17, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 272, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jLabel27)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jSeparator13, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 322, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(2478, Short.MAX_VALUE))
        );

        Datos_Generales.setViewportView(jPanel4);

        PanelGeneralReportes.addTab(resourceMap.getString("Datos_Generales.TabConstraints.tabTitle"), Datos_Generales); // NOI18N

        AprobacionPane.setName("AprobacionPane"); // NOI18N

        PanelPrincipalAprobacion.setMaximumSize(PanelPrincipalAprobacion.preferredSize());
        PanelPrincipalAprobacion.setName("PanelPrincipalAprobacion"); // NOI18N
        PanelPrincipalAprobacion.setPreferredSize(new java.awt.Dimension(800, 2000));
        PanelPrincipalAprobacion.setLayout(null);

        jLabel10.setFont(resourceMap.getFont("jLabel10.font")); // NOI18N
        jLabel10.setForeground(resourceMap.getColor("jLabel10.foreground")); // NOI18N
        jLabel10.setText(resourceMap.getString("jLabel10.text")); // NOI18N
        jLabel10.setName("jLabel10"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel10);
        jLabel10.setBounds(10, 10, 196, 17);

        jLabel11.setFont(resourceMap.getFont("jLabel11.font")); // NOI18N
        jLabel11.setText(resourceMap.getString("jLabel11.text")); // NOI18N
        jLabel11.setName("jLabel11"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel11);
        jLabel11.setBounds(10, 60, 283, 15);

        PorcentAprReport.setFont(resourceMap.getFont("PorcentAprReport.font")); // NOI18N
        PorcentAprReport.setText(resourceMap.getString("PorcentAprReport.text")); // NOI18N
        PorcentAprReport.setName("PorcentAprReport"); // NOI18N
        PanelPrincipalAprobacion.add(PorcentAprReport);
        PorcentAprReport.setBounds(300, 50, 70, 28);

        jLabel12.setFont(resourceMap.getFont("jLabel12.font")); // NOI18N
        jLabel12.setText(resourceMap.getString("jLabel12.text")); // NOI18N
        jLabel12.setName("jLabel12"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel12);
        jLabel12.setBounds(370, 50, 22, 22);

        jButton14.setAction(actionMap.get("DetalleAprobacion")); // NOI18N
        jButton14.setText(resourceMap.getString("jButton14.text")); // NOI18N
        jButton14.setName("jButton14"); // NOI18N
        PanelPrincipalAprobacion.add(jButton14);
        jButton14.setBounds(10, 80, 100, 20);

        jLabel13.setFont(resourceMap.getFont("jLabel13.font")); // NOI18N
        jLabel13.setForeground(resourceMap.getColor("jLabel13.foreground")); // NOI18N
        jLabel13.setText(resourceMap.getString("jLabel13.text")); // NOI18N
        jLabel13.setName("jLabel13"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel13);
        jLabel13.setBounds(10, 110, 298, 17);

        jLabel30.setFont(resourceMap.getFont("jLabel30.font")); // NOI18N
        jLabel30.setForeground(resourceMap.getColor("jLabel30.foreground")); // NOI18N
        jLabel30.setText(resourceMap.getString("jLabel30.text")); // NOI18N
        jLabel30.setName("jLabel30"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel30);
        jLabel30.setBounds(0, 2310, 280, 17);

        jLabel31.setFont(resourceMap.getFont("jLabel31.font")); // NOI18N
        jLabel31.setForeground(resourceMap.getColor("jLabel31.foreground")); // NOI18N
        jLabel31.setText(resourceMap.getString("jLabel31.text")); // NOI18N
        jLabel31.setName("jLabel31"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel31);
        jLabel31.setBounds(20, 3730, 93, 17);

        jLabel32.setFont(resourceMap.getFont("jLabel32.font")); // NOI18N
        jLabel32.setText(resourceMap.getString("jLabel32.text")); // NOI18N
        jLabel32.setName("jLabel32"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel32);
        jLabel32.setBounds(20, 3820, 279, 14);

        Aprobados1instan.setFont(resourceMap.getFont("Aprobados1instan.font")); // NOI18N
        Aprobados1instan.setText(resourceMap.getString("Aprobados1instan.text")); // NOI18N
        Aprobados1instan.setName("Aprobados1instan"); // NOI18N
        PanelPrincipalAprobacion.add(Aprobados1instan);
        Aprobados1instan.setBounds(550, 3770, 89, 28);

        jLabel34.setFont(resourceMap.getFont("jLabel34.font")); // NOI18N
        jLabel34.setText(resourceMap.getString("jLabel34.text")); // NOI18N
        jLabel34.setName("jLabel34"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel34);
        jLabel34.setBounds(20, 3780, 88, 15);

        TotalAsignaturas.setFont(resourceMap.getFont("TotalAsignaturas.font")); // NOI18N
        TotalAsignaturas.setName("TotalAsignaturas"); // NOI18N
        PanelPrincipalAprobacion.add(TotalAsignaturas);
        TotalAsignaturas.setBounds(110, 3770, 80, 30);

        jLabel35.setFont(resourceMap.getFont("jLabel35.font")); // NOI18N
        jLabel35.setText(resourceMap.getString("jLabel35.text")); // NOI18N
        jLabel35.setName("jLabel35"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel35);
        jLabel35.setBounds(190, 3780, 358, 15);

        jLabel36.setFont(resourceMap.getFont("jLabel36.font")); // NOI18N
        jLabel36.setText(resourceMap.getString("jLabel36.text")); // NOI18N
        jLabel36.setName("jLabel36"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel36);
        jLabel36.setBounds(20, 3860, 279, 15);

        SegundaInstanciaField.setFont(resourceMap.getFont("SegundaInstanciaField.font")); // NOI18N
        SegundaInstanciaField.setName("SegundaInstanciaField"); // NOI18N
        PanelPrincipalAprobacion.add(SegundaInstanciaField);
        SegundaInstanciaField.setBounds(310, 3850, 80, 30);

        jLabel38.setFont(resourceMap.getFont("jLabel38.font")); // NOI18N
        jLabel38.setText(resourceMap.getString("jLabel38.text")); // NOI18N
        jLabel38.setName("jLabel38"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel38);
        jLabel38.setBounds(20, 3900, 322, 15);

        MasDeSegundaField.setFont(resourceMap.getFont("MasDeSegundaField.font")); // NOI18N
        MasDeSegundaField.setName("MasDeSegundaField"); // NOI18N
        PanelPrincipalAprobacion.add(MasDeSegundaField);
        MasDeSegundaField.setBounds(350, 3890, 70, 30);

        jLabel40.setFont(resourceMap.getFont("jLabel40.font")); // NOI18N
        jLabel40.setText(resourceMap.getString("jLabel40.text")); // NOI18N
        jLabel40.setName("jLabel40"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel40);
        jLabel40.setBounds(640, 3780, 179, 15);

        PrimeraInstanciaField.setFont(resourceMap.getFont("PrimeraInstanciaField.font")); // NOI18N
        PrimeraInstanciaField.setName("PrimeraInstanciaField"); // NOI18N
        PanelPrincipalAprobacion.add(PrimeraInstanciaField);
        PrimeraInstanciaField.setBounds(310, 3810, 80, 30);

        LabelGraficoPeriodo.setText(resourceMap.getString("LabelGraficoPeriodo.text")); // NOI18N
        LabelGraficoPeriodo.setName("LabelGraficoPeriodo"); // NOI18N
        PanelPrincipalAprobacion.add(LabelGraficoPeriodo);
        LabelGraficoPeriodo.setBounds(406, 1748, 0, 236);

        LabelGraficoAprAsignatura.setName("LabelGraficoAprAsignatura"); // NOI18N
        PanelPrincipalAprobacion.add(LabelGraficoAprAsignatura);
        LabelGraficoAprAsignatura.setBounds(2004, 3560, 397, 0);

        jLabel29.setFont(resourceMap.getFont("jLabel29.font")); // NOI18N
        jLabel29.setForeground(resourceMap.getColor("jLabel29.foreground")); // NOI18N
        jLabel29.setText(resourceMap.getString("jLabel29.text")); // NOI18N
        jLabel29.setName("jLabel29"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel29);
        jLabel29.setBounds(10, 580, 186, 17);

        LabelGraficoAprPeriodo.setBackground(resourceMap.getColor("LabelGraficoAprPeriodo.background")); // NOI18N
        LabelGraficoAprPeriodo.setText(resourceMap.getString("LabelGraficoAprPeriodo.text")); // NOI18N
        LabelGraficoAprPeriodo.setName("LabelGraficoAprPeriodo"); // NOI18N
        PanelPrincipalAprobacion.add(LabelGraficoAprPeriodo);
        LabelGraficoAprPeriodo.setBounds(185, 304, 700, 260);

        jScrollPane5.setName("jScrollPane5"); // NOI18N

        TablaAprPeriodo.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null}
            },
            new String [] {
                "Año- Semestre", "Aprobacion"
            }
        ));
        TablaAprPeriodo.setMaximumSize(new java.awt.Dimension(150, 272));
        TablaAprPeriodo.setName("TablaAprPeriodo"); // NOI18N
        jScrollPane5.setViewportView(TablaAprPeriodo);
        TablaAprPeriodo.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("TablaAprPeriodo.columnModel.title0")); // NOI18N
        TablaAprPeriodo.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("TablaAprPeriodo.columnModel.title1")); // NOI18N

        PanelPrincipalAprobacion.add(jScrollPane5);
        jScrollPane5.setBounds(10, 140, 980, 160);

        LabelGraficoAprProfesor.setName("LabelGraficoAprProfesor"); // NOI18N
        PanelPrincipalAprobacion.add(LabelGraficoAprProfesor);
        LabelGraficoAprProfesor.setBounds(0, 2520, 980, 1190);

        jScrollPane4.setName("jScrollPane4"); // NOI18N

        TablaAprAsignatura.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
        TablaAprAsignatura.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null}
            },
            new String [] {
                "Asignatura", "Aprobadas"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        TablaAprAsignatura.setMaximumSize(new java.awt.Dimension(150, 272));
        TablaAprAsignatura.setName("TablaAprAsignatura"); // NOI18N
        jScrollPane4.setViewportView(TablaAprAsignatura);
        TablaAprAsignatura.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("TablaAprAsignatura.columnModel.title0")); // NOI18N
        TablaAprAsignatura.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("TablaAprAsignatura.columnModel.title1")); // NOI18N

        PanelPrincipalAprobacion.add(jScrollPane4);
        jScrollPane4.setBounds(10, 620, 980, 150);

        LabelGraficoAprAreaConocimiento.setName("LabelGraficoAprAreaConocimiento"); // NOI18N
        PanelPrincipalAprobacion.add(LabelGraficoAprAreaConocimiento);
        LabelGraficoAprAreaConocimiento.setBounds(10, 1640, 970, 620);

        jScrollPane6.setName("jScrollPane6"); // NOI18N

        TablaAprProfesor.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null}
            },
            new String [] {
                "Profesor", "Aprobadas"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        TablaAprProfesor.setMaximumSize(new java.awt.Dimension(150, 272));
        TablaAprProfesor.setName("TablaAprProfesor"); // NOI18N
        jScrollPane6.setViewportView(TablaAprProfesor);
        TablaAprProfesor.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("TablaAprProfesor.columnModel.title0")); // NOI18N
        TablaAprProfesor.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("TablaAprProfesor.columnModel.title1")); // NOI18N

        PanelPrincipalAprobacion.add(jScrollPane6);
        jScrollPane6.setBounds(0, 2350, 970, 170);

        jSeparator3.setName("jSeparator3"); // NOI18N
        PanelPrincipalAprobacion.add(jSeparator3);
        jSeparator3.setBounds(10, 130, 1010, 10);

        jSeparator4.setName("jSeparator4"); // NOI18N
        PanelPrincipalAprobacion.add(jSeparator4);
        jSeparator4.setBounds(10, 40, 1010, 2);

        jSeparator5.setName("jSeparator5"); // NOI18N
        PanelPrincipalAprobacion.add(jSeparator5);
        jSeparator5.setBounds(10, 600, 1010, 10);

        jSeparator9.setName("jSeparator9"); // NOI18N
        PanelPrincipalAprobacion.add(jSeparator9);
        jSeparator9.setBounds(0, 1170, 960, 0);

        jSeparator10.setName("jSeparator10"); // NOI18N
        PanelPrincipalAprobacion.add(jSeparator10);
        jSeparator10.setBounds(10, 1430, 1020, 20);

        jSeparator18.setName("jSeparator18"); // NOI18N
        PanelPrincipalAprobacion.add(jSeparator18);
        jSeparator18.setBounds(0, 3750, 1030, 2);

        jLabel33.setFont(resourceMap.getFont("jLabel33.font")); // NOI18N
        jLabel33.setText(resourceMap.getString("jLabel33.text")); // NOI18N
        jLabel33.setName("jLabel33"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel33);
        jLabel33.setBounds(610, 3890, 30, 22);

        jLabel37.setFont(resourceMap.getFont("jLabel37.font")); // NOI18N
        jLabel37.setText(resourceMap.getString("jLabel37.text")); // NOI18N
        jLabel37.setName("jLabel37"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel37);
        jLabel37.setBounds(580, 3810, 30, 20);

        jLabel39.setFont(resourceMap.getFont("jLabel39.font")); // NOI18N
        jLabel39.setText(resourceMap.getString("jLabel39.text")); // NOI18N
        jLabel39.setName("jLabel39"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel39);
        jLabel39.setBounds(580, 3850, 30, 20);

        PorcentajePrimeraInstancia.setFont(resourceMap.getFont("PorcentajePrimeraInstancia.font")); // NOI18N
        PorcentajePrimeraInstancia.setName("PorcentajePrimeraInstancia"); // NOI18N
        PanelPrincipalAprobacion.add(PorcentajePrimeraInstancia);
        PorcentajePrimeraInstancia.setBounds(510, 3810, 70, 30);

        PorcentajeMasDeSegundaInstancia.setFont(resourceMap.getFont("PorcentajeMasDeSegundaInstancia.font")); // NOI18N
        PorcentajeMasDeSegundaInstancia.setName("PorcentajeMasDeSegundaInstancia"); // NOI18N
        PanelPrincipalAprobacion.add(PorcentajeMasDeSegundaInstancia);
        PorcentajeMasDeSegundaInstancia.setBounds(540, 3890, 70, 30);

        PorcentajeSegundaInstancia1.setFont(resourceMap.getFont("PorcentajeSegundaInstancia1.font")); // NOI18N
        PorcentajeSegundaInstancia1.setName("PorcentajeSegundaInstancia1"); // NOI18N
        PanelPrincipalAprobacion.add(PorcentajeSegundaInstancia1);
        PorcentajeSegundaInstancia1.setBounds(510, 3850, 70, 30);

        jLabel42.setName("jLabel42"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel42);
        jLabel42.setBounds(580, 2350, 30, 0);

        jLabel43.setName("jLabel43"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel43);
        jLabel43.setBounds(570, 3760, 30, 20);

        jLabel45.setName("jLabel45"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel45);
        jLabel45.setBounds(610, 2440, 0, 0);

        jLabel62.setName("jLabel62"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel62);
        jLabel62.setBounds(430, 3860, 100, 0);

        jLabel63.setName("jLabel63"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel63);
        jLabel63.setBounds(400, 3780, 100, 0);

        jLabel64.setName("jLabel64"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel64);
        jLabel64.setBounds(400, 3820, 100, 0);

        jLabel72.setName("jLabel72"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel72);
        jLabel72.setBounds(0, 2310, 190, 0);

        jSeparator29.setName("jSeparator29"); // NOI18N
        PanelPrincipalAprobacion.add(jSeparator29);
        jSeparator29.setBounds(0, 2330, 1020, 20);

        jScrollPane13.setName("jScrollPane13"); // NOI18N

        TablaAprAreaDeConocimiento.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null}
            },
            new String [] {
                "Profesor", "Aprobadas"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        TablaAprAreaDeConocimiento.setMaximumSize(new java.awt.Dimension(150, 272));
        TablaAprAreaDeConocimiento.setName("TablaAprAreaDeConocimiento"); // NOI18N
        jScrollPane13.setViewportView(TablaAprAreaDeConocimiento);
        TablaAprAreaDeConocimiento.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("TablaAprAreaDeConocimiento.columnModel.title0")); // NOI18N
        TablaAprAreaDeConocimiento.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("TablaAprAreaDeConocimiento.columnModel.title1")); // NOI18N

        PanelPrincipalAprobacion.add(jScrollPane13);
        jScrollPane13.setBounds(10, 1450, 970, 170);

        LabelGraficoAprAsig1.setName("LabelGraficoAprAsig1"); // NOI18N
        PanelPrincipalAprobacion.add(LabelGraficoAprAsig1);
        LabelGraficoAprAsig1.setBounds(10, 780, 980, 600);

        jLabel73.setFont(resourceMap.getFont("jLabel73.font")); // NOI18N
        jLabel73.setForeground(resourceMap.getColor("jLabel73.foreground")); // NOI18N
        jLabel73.setText(resourceMap.getString("jLabel73.text")); // NOI18N
        jLabel73.setName("jLabel73"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel73);
        jLabel73.setBounds(10, 1410, 280, 17);

        BotonGeneraAprobacion.setAction(actionMap.get("ReporteAprobacion")); // NOI18N
        BotonGeneraAprobacion.setIcon(resourceMap.getIcon("BotonGeneraAprobacion.icon")); // NOI18N
        BotonGeneraAprobacion.setText(resourceMap.getString("BotonGeneraAprobacion.text")); // NOI18N
        BotonGeneraAprobacion.setToolTipText(resourceMap.getString("BotonGeneraAprobacion.toolTipText")); // NOI18N
        BotonGeneraAprobacion.setName("BotonGeneraAprobacion"); // NOI18N
        PanelPrincipalAprobacion.add(BotonGeneraAprobacion);
        BotonGeneraAprobacion.setBounds(610, 10, 210, 30);

        ImprimirApr.setAction(actionMap.get("ImprimeApr")); // NOI18N
        ImprimirApr.setIcon(resourceMap.getIcon("ImprimirApr.icon")); // NOI18N
        ImprimirApr.setText(resourceMap.getString("ImprimirApr.text")); // NOI18N
        ImprimirApr.setToolTipText(resourceMap.getString("ImprimirApr.toolTipText")); // NOI18N
        ImprimirApr.setName("ImprimirApr"); // NOI18N
        PanelPrincipalAprobacion.add(ImprimirApr);
        ImprimirApr.setBounds(850, 10, 120, 30);

        jLabel99.setFont(resourceMap.getFont("jLabel99.font")); // NOI18N
        jLabel99.setText(resourceMap.getString("jLabel99.text")); // NOI18N
        jLabel99.setName("jLabel99"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel99);
        jLabel99.setBounds(430, 3900, 120, 15);

        jLabel100.setFont(resourceMap.getFont("jLabel100.font")); // NOI18N
        jLabel100.setText(resourceMap.getString("jLabel100.text")); // NOI18N
        jLabel100.setName("jLabel100"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel100);
        jLabel100.setBounds(640, 3900, 140, 15);

        jLabel101.setFont(resourceMap.getFont("jLabel101.font")); // NOI18N
        jLabel101.setText(resourceMap.getString("jLabel101.text")); // NOI18N
        jLabel101.setName("jLabel101"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel101);
        jLabel101.setBounds(400, 3860, 110, 15);

        jLabel102.setFont(resourceMap.getFont("jLabel102.font")); // NOI18N
        jLabel102.setText(resourceMap.getString("jLabel102.text")); // NOI18N
        jLabel102.setName("jLabel102"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel102);
        jLabel102.setBounds(400, 3820, 102, 15);

        jLabel103.setFont(resourceMap.getFont("jLabel103.font")); // NOI18N
        jLabel103.setText(resourceMap.getString("jLabel103.text")); // NOI18N
        jLabel103.setName("jLabel103"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel103);
        jLabel103.setBounds(610, 3820, 140, 20);

        jLabel104.setFont(resourceMap.getFont("jLabel104.font")); // NOI18N
        jLabel104.setText(resourceMap.getString("jLabel104.text")); // NOI18N
        jLabel104.setName("jLabel104"); // NOI18N
        PanelPrincipalAprobacion.add(jLabel104);
        jLabel104.setBounds(610, 3860, 130, 15);

        AprobacionPane.setViewportView(PanelPrincipalAprobacion);

        PanelGeneralReportes.addTab(resourceMap.getString("AprobacionPane.TabConstraints.tabTitle"), AprobacionPane); // NOI18N

        ReprobacionPane.setName("ReprobacionPane"); // NOI18N

        PanelPrincipalReprobacion.setMaximumSize(PanelPrincipalAprobacion.preferredSize());
        PanelPrincipalReprobacion.setName("PanelPrincipalReprobacion"); // NOI18N
        PanelPrincipalReprobacion.setPreferredSize(new java.awt.Dimension(800, 2000));
        PanelPrincipalReprobacion.setLayout(null);

        jLabel46.setFont(resourceMap.getFont("jLabel46.font")); // NOI18N
        jLabel46.setForeground(resourceMap.getColor("jLabel46.foreground")); // NOI18N
        jLabel46.setText(resourceMap.getString("jLabel46.text")); // NOI18N
        jLabel46.setName("jLabel46"); // NOI18N
        PanelPrincipalReprobacion.add(jLabel46);
        jLabel46.setBounds(10, 10, 220, 17);

        jLabel49.setFont(resourceMap.getFont("jLabel49.font")); // NOI18N
        jLabel49.setText(resourceMap.getString("jLabel49.text")); // NOI18N
        jLabel49.setName("jLabel49"); // NOI18N
        PanelPrincipalReprobacion.add(jLabel49);
        jLabel49.setBounds(10, 60, 287, 16);

        PorcentRprReport.setFont(resourceMap.getFont("PorcentRprReport.font")); // NOI18N
        PorcentRprReport.setName("PorcentRprReport"); // NOI18N
        PanelPrincipalReprobacion.add(PorcentRprReport);
        PorcentRprReport.setBounds(300, 50, 70, 30);

        jLabel50.setFont(resourceMap.getFont("jLabel50.font")); // NOI18N
        jLabel50.setText(resourceMap.getString("jLabel50.text")); // NOI18N
        jLabel50.setName("jLabel50"); // NOI18N
        PanelPrincipalReprobacion.add(jLabel50);
        jLabel50.setBounds(370, 50, 30, 22);

        jButton15.setAction(actionMap.get("DetalleReprobacion")); // NOI18N
        jButton15.setText(resourceMap.getString("jButton15.text")); // NOI18N
        jButton15.setName("jButton15"); // NOI18N
        PanelPrincipalReprobacion.add(jButton15);
        jButton15.setBounds(10, 80, 100, 20);

        jLabel51.setFont(resourceMap.getFont("jLabel51.font")); // NOI18N
        jLabel51.setForeground(resourceMap.getColor("jLabel51.foreground")); // NOI18N
        jLabel51.setText(resourceMap.getString("jLabel51.text")); // NOI18N
        jLabel51.setName("jLabel51"); // NOI18N
        PanelPrincipalReprobacion.add(jLabel51);
        jLabel51.setBounds(10, 110, 350, 17);

        jLabel52.setFont(resourceMap.getFont("jLabel52.font")); // NOI18N
        jLabel52.setForeground(resourceMap.getColor("jLabel52.foreground")); // NOI18N
        jLabel52.setText(resourceMap.getString("jLabel52.text")); // NOI18N
        jLabel52.setName("jLabel52"); // NOI18N
        PanelPrincipalReprobacion.add(jLabel52);
        jLabel52.setBounds(0, 2310, 280, 17);

        LabelGraficoPeriodo1.setName("LabelGraficoPeriodo1"); // NOI18N
        PanelPrincipalReprobacion.add(LabelGraficoPeriodo1);
        LabelGraficoPeriodo1.setBounds(406, 1748, 0, 236);

        LabelGraficoAprAsignatura1.setName("LabelGraficoAprAsignatura1"); // NOI18N
        PanelPrincipalReprobacion.add(LabelGraficoAprAsignatura1);
        LabelGraficoAprAsignatura1.setBounds(2004, 3560, 397, 0);

        jLabel70.setFont(resourceMap.getFont("jLabel70.font")); // NOI18N
        jLabel70.setForeground(resourceMap.getColor("jLabel70.foreground")); // NOI18N
        jLabel70.setText(resourceMap.getString("jLabel70.text")); // NOI18N
        jLabel70.setName("jLabel70"); // NOI18N
        PanelPrincipalReprobacion.add(jLabel70);
        jLabel70.setBounds(10, 580, 200, 17);

        LabelGraficoRprPeriodo.setBackground(resourceMap.getColor("LabelGraficoRprPeriodo.background")); // NOI18N
        LabelGraficoRprPeriodo.setName("LabelGraficoRprPeriodo"); // NOI18N
        PanelPrincipalReprobacion.add(LabelGraficoRprPeriodo);
        LabelGraficoRprPeriodo.setBounds(185, 304, 700, 260);

        jScrollPane7.setName("jScrollPane7"); // NOI18N

        TablaRprPeriodo.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null}
            },
            new String [] {
                "Año- Semestre", "Aprobación"
            }
        ));
        TablaRprPeriodo.setMaximumSize(new java.awt.Dimension(150, 272));
        TablaRprPeriodo.setName("TablaRprPeriodo"); // NOI18N
        jScrollPane7.setViewportView(TablaRprPeriodo);
        TablaRprPeriodo.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("TablaRprPeriodo.columnModel.title0")); // NOI18N
        TablaRprPeriodo.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("TablaRprPeriodo.columnModel.title1")); // NOI18N

        PanelPrincipalReprobacion.add(jScrollPane7);
        jScrollPane7.setBounds(10, 140, 980, 160);

        LabelGraficoRprProfesor.setName("LabelGraficoRprProfesor"); // NOI18N
        PanelPrincipalReprobacion.add(LabelGraficoRprProfesor);
        LabelGraficoRprProfesor.setBounds(0, 2540, 980, 1220);

        jScrollPane8.setName("jScrollPane8"); // NOI18N

        TablaRprAsignatura.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
        TablaRprAsignatura.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null}
            },
            new String [] {
                "Asignatura", "Aprobadas"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        TablaRprAsignatura.setMaximumSize(new java.awt.Dimension(150, 272));
        TablaRprAsignatura.setName("TablaRprAsignatura"); // NOI18N
        jScrollPane8.setViewportView(TablaRprAsignatura);

        PanelPrincipalReprobacion.add(jScrollPane8);
        jScrollPane8.setBounds(10, 620, 980, 150);

        LabelGraficoRprAreaConocimiento.setName("LabelGraficoRprAreaConocimiento"); // NOI18N
        PanelPrincipalReprobacion.add(LabelGraficoRprAreaConocimiento);
        LabelGraficoRprAreaConocimiento.setBounds(10, 1640, 970, 620);

        jScrollPane9.setName("jScrollPane9"); // NOI18N

        TablaRprProfesor.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null}
            },
            new String [] {
                "Profesor", "Aprobadas"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        TablaRprProfesor.setMaximumSize(new java.awt.Dimension(150, 272));
        TablaRprProfesor.setName("TablaRprProfesor"); // NOI18N
        jScrollPane9.setViewportView(TablaRprProfesor);

        PanelPrincipalReprobacion.add(jScrollPane9);
        jScrollPane9.setBounds(0, 2350, 970, 170);

        jSeparator19.setName("jSeparator19"); // NOI18N
        PanelPrincipalReprobacion.add(jSeparator19);
        jSeparator19.setBounds(10, 130, 1010, 10);

        jSeparator20.setName("jSeparator20"); // NOI18N
        PanelPrincipalReprobacion.add(jSeparator20);
        jSeparator20.setBounds(10, 40, 1010, 2);

        jSeparator21.setName("jSeparator21"); // NOI18N
        PanelPrincipalReprobacion.add(jSeparator21);
        jSeparator21.setBounds(10, 600, 1010, 10);

        jSeparator22.setName("jSeparator22"); // NOI18N
        PanelPrincipalReprobacion.add(jSeparator22);
        jSeparator22.setBounds(0, 1170, 960, 0);

        jSeparator23.setName("jSeparator23"); // NOI18N
        PanelPrincipalReprobacion.add(jSeparator23);
        jSeparator23.setBounds(10, 1430, 1020, 20);

        jLabel76.setName("jLabel76"); // NOI18N
        PanelPrincipalReprobacion.add(jLabel76);
        jLabel76.setBounds(580, 2350, 30, 0);

        jLabel78.setName("jLabel78"); // NOI18N
        PanelPrincipalReprobacion.add(jLabel78);
        jLabel78.setBounds(610, 2440, 0, 0);

        jLabel79.setName("jLabel79"); // NOI18N
        PanelPrincipalReprobacion.add(jLabel79);
        jLabel79.setBounds(430, 3860, 100, 0);

        jLabel80.setName("jLabel80"); // NOI18N
        PanelPrincipalReprobacion.add(jLabel80);
        jLabel80.setBounds(400, 3780, 100, 0);

        jLabel81.setName("jLabel81"); // NOI18N
        PanelPrincipalReprobacion.add(jLabel81);
        jLabel81.setBounds(400, 3820, 100, 0);

        jLabel82.setName("jLabel82"); // NOI18N
        PanelPrincipalReprobacion.add(jLabel82);
        jLabel82.setBounds(0, 2310, 190, 0);

        jSeparator31.setName("jSeparator31"); // NOI18N
        PanelPrincipalReprobacion.add(jSeparator31);
        jSeparator31.setBounds(0, 2330, 1020, 20);

        jScrollPane14.setName("jScrollPane14"); // NOI18N

        TablaRprAreaDeConocimiento.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null}
            },
            new String [] {
                "Profesor", "Aprobadas"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        TablaRprAreaDeConocimiento.setMaximumSize(new java.awt.Dimension(150, 272));
        TablaRprAreaDeConocimiento.setName("TablaRprAreaDeConocimiento"); // NOI18N
        jScrollPane14.setViewportView(TablaRprAreaDeConocimiento);

        PanelPrincipalReprobacion.add(jScrollPane14);
        jScrollPane14.setBounds(10, 1450, 970, 170);

        LabelGraficoRprAsig.setName("LabelGraficoRprAsig"); // NOI18N
        PanelPrincipalReprobacion.add(LabelGraficoRprAsig);
        LabelGraficoRprAsig.setBounds(10, 780, 980, 600);

        jLabel83.setFont(resourceMap.getFont("jLabel83.font")); // NOI18N
        jLabel83.setForeground(resourceMap.getColor("jLabel83.foreground")); // NOI18N
        jLabel83.setText(resourceMap.getString("jLabel83.text")); // NOI18N
        jLabel83.setName("jLabel83"); // NOI18N
        PanelPrincipalReprobacion.add(jLabel83);
        jLabel83.setBounds(10, 1410, 280, 17);

        jButton10.setAction(actionMap.get("ReporteReprobacion")); // NOI18N
        jButton10.setIcon(resourceMap.getIcon("jButton10.icon")); // NOI18N
        jButton10.setText(resourceMap.getString("jButton10.text")); // NOI18N
        jButton10.setToolTipText(resourceMap.getString("jButton10.toolTipText")); // NOI18N
        jButton10.setName("jButton10"); // NOI18N
        PanelPrincipalReprobacion.add(jButton10);
        jButton10.setBounds(550, 10, 270, 30);

        ImprimirRpr.setAction(actionMap.get("ImprimeRpr")); // NOI18N
        ImprimirRpr.setIcon(resourceMap.getIcon("ImprimirRpr.icon")); // NOI18N
        ImprimirRpr.setText(resourceMap.getString("ImprimirRpr.text")); // NOI18N
        ImprimirRpr.setToolTipText(resourceMap.getString("ImprimirRpr.toolTipText")); // NOI18N
        ImprimirRpr.setName("ImprimirRpr"); // NOI18N
        PanelPrincipalReprobacion.add(ImprimirRpr);
        ImprimirRpr.setBounds(850, 10, 120, 30);

        ReprobacionPane.setViewportView(PanelPrincipalReprobacion);

        PanelGeneralReportes.addTab("Reprobación", ReprobacionPane);

        RenunciaPane.setName("RenunciaPane"); // NOI18N

        PanelPrincipalRenuncia.setMaximumSize(PanelPrincipalAprobacion.preferredSize());
        PanelPrincipalRenuncia.setName("PanelPrincipalRenuncia"); // NOI18N
        PanelPrincipalRenuncia.setPreferredSize(new java.awt.Dimension(800, 2000));
        PanelPrincipalRenuncia.setLayout(null);

        jLabel53.setFont(resourceMap.getFont("jLabel53.font")); // NOI18N
        jLabel53.setForeground(resourceMap.getColor("jLabel53.foreground")); // NOI18N
        jLabel53.setText(resourceMap.getString("jLabel53.text")); // NOI18N
        jLabel53.setName("jLabel53"); // NOI18N
        PanelPrincipalRenuncia.add(jLabel53);
        jLabel53.setBounds(10, 10, 220, 17);

        jLabel54.setFont(resourceMap.getFont("jLabel54.font")); // NOI18N
        jLabel54.setText(resourceMap.getString("jLabel54.text")); // NOI18N
        jLabel54.setName("jLabel54"); // NOI18N
        PanelPrincipalRenuncia.add(jLabel54);
        jLabel54.setBounds(10, 90, 400, 16);

        PorcentRenReport.setFont(resourceMap.getFont("PorcentRenReport.font")); // NOI18N
        PorcentRenReport.setName("PorcentRenReport"); // NOI18N
        PanelPrincipalRenuncia.add(PorcentRenReport);
        PorcentRenReport.setBounds(270, 50, 70, 30);

        jLabel56.setFont(resourceMap.getFont("jLabel56.font")); // NOI18N
        jLabel56.setForeground(resourceMap.getColor("jLabel56.foreground")); // NOI18N
        jLabel56.setText(resourceMap.getString("jLabel56.text")); // NOI18N
        jLabel56.setName("jLabel56"); // NOI18N
        PanelPrincipalRenuncia.add(jLabel56);
        jLabel56.setBounds(10, 150, 320, 17);

        jLabel57.setFont(resourceMap.getFont("jLabel57.font")); // NOI18N
        jLabel57.setForeground(resourceMap.getColor("jLabel57.foreground")); // NOI18N
        jLabel57.setText(resourceMap.getString("jLabel57.text")); // NOI18N
        jLabel57.setName("jLabel57"); // NOI18N
        PanelPrincipalRenuncia.add(jLabel57);
        jLabel57.setBounds(10, 2500, 280, 17);

        LabelGraficoPeriodo2.setName("LabelGraficoPeriodo2"); // NOI18N
        PanelPrincipalRenuncia.add(LabelGraficoPeriodo2);
        LabelGraficoPeriodo2.setBounds(406, 1748, 0, 236);

        LabelGraficoAprAsignatura2.setName("LabelGraficoAprAsignatura2"); // NOI18N
        PanelPrincipalRenuncia.add(LabelGraficoAprAsignatura2);
        LabelGraficoAprAsignatura2.setBounds(2004, 3560, 397, 0);

        jLabel68.setFont(resourceMap.getFont("jLabel68.font")); // NOI18N
        jLabel68.setForeground(resourceMap.getColor("jLabel68.foreground")); // NOI18N
        jLabel68.setText(resourceMap.getString("jLabel68.text")); // NOI18N
        jLabel68.setName("jLabel68"); // NOI18N
        PanelPrincipalRenuncia.add(jLabel68);
        jLabel68.setBounds(10, 620, 180, 17);

        LabelGraficoRenPeriodo.setBackground(resourceMap.getColor("LabelGraficoRenPeriodo.background")); // NOI18N
        LabelGraficoRenPeriodo.setName("LabelGraficoRenPeriodo"); // NOI18N
        PanelPrincipalRenuncia.add(LabelGraficoRenPeriodo);
        LabelGraficoRenPeriodo.setBounds(190, 350, 700, 270);

        jScrollPane10.setName("jScrollPane10"); // NOI18N

        TablaRenPeriodo.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null}
            },
            new String [] {
                "Año- Semestre", "Renuncia"
            }
        ));
        TablaRenPeriodo.setMaximumSize(new java.awt.Dimension(150, 272));
        TablaRenPeriodo.setName("TablaRenPeriodo"); // NOI18N
        jScrollPane10.setViewportView(TablaRenPeriodo);
        TablaRenPeriodo.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("TablaAprPeriodo.columnModel.title0")); // NOI18N
        TablaRenPeriodo.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("TablaAprPeriodo.columnModel.title1")); // NOI18N

        PanelPrincipalRenuncia.add(jScrollPane10);
        jScrollPane10.setBounds(10, 190, 980, 160);

        LabelGraficoRenProfesor.setName("LabelGraficoRenProfesor"); // NOI18N
        PanelPrincipalRenuncia.add(LabelGraficoRenProfesor);
        LabelGraficoRenProfesor.setBounds(10, 2740, 980, 1120);

        jScrollPane11.setName("jScrollPane11"); // NOI18N

        TablaRenAsignatura.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
        TablaRenAsignatura.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null}
            },
            new String [] {
                "Asignatura", "Renunciadas"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        TablaRenAsignatura.setMaximumSize(new java.awt.Dimension(150, 272));
        TablaRenAsignatura.setName("TablaRenAsignatura"); // NOI18N
        jScrollPane11.setViewportView(TablaRenAsignatura);
        TablaRenAsignatura.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("TablaAprAsignatura.columnModel.title0")); // NOI18N
        TablaRenAsignatura.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("TablaAprAsignatura.columnModel.title1")); // NOI18N

        PanelPrincipalRenuncia.add(jScrollPane11);
        jScrollPane11.setBounds(10, 660, 980, 150);

        LabelGraficoRenAreaConocimiento.setName("LabelGraficoRenAreaConocimiento"); // NOI18N
        PanelPrincipalRenuncia.add(LabelGraficoRenAreaConocimiento);
        LabelGraficoRenAreaConocimiento.setBounds(10, 1830, 970, 620);

        jScrollPane12.setName("jScrollPane12"); // NOI18N

        TablaRenProfesor.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null}
            },
            new String [] {
                "Profesor", "Renunciadas"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        TablaRenProfesor.setMaximumSize(new java.awt.Dimension(150, 272));
        TablaRenProfesor.setName("TablaRenProfesor"); // NOI18N
        jScrollPane12.setViewportView(TablaRenProfesor);
        TablaRenProfesor.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("TablaAprProfesor.columnModel.title0")); // NOI18N
        TablaRenProfesor.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("TablaAprProfesor.columnModel.title1")); // NOI18N

        PanelPrincipalRenuncia.add(jScrollPane12);
        jScrollPane12.setBounds(10, 2540, 970, 170);

        jSeparator24.setName("jSeparator24"); // NOI18N
        PanelPrincipalRenuncia.add(jSeparator24);
        jSeparator24.setBounds(10, 170, 1010, 10);

        jSeparator25.setName("jSeparator25"); // NOI18N
        PanelPrincipalRenuncia.add(jSeparator25);
        jSeparator25.setBounds(10, 40, 1010, 2);

        jSeparator26.setName("jSeparator26"); // NOI18N
        PanelPrincipalRenuncia.add(jSeparator26);
        jSeparator26.setBounds(10, 640, 1010, 10);

        jSeparator27.setName("jSeparator27"); // NOI18N
        PanelPrincipalRenuncia.add(jSeparator27);
        jSeparator27.setBounds(0, 1170, 960, 0);

        jSeparator28.setName("jSeparator28"); // NOI18N
        PanelPrincipalRenuncia.add(jSeparator28);
        jSeparator28.setBounds(10, 1620, 1020, 20);

        jLabel75.setName("jLabel75"); // NOI18N
        PanelPrincipalRenuncia.add(jLabel75);
        jLabel75.setBounds(580, 2350, 30, 0);

        jLabel84.setName("jLabel84"); // NOI18N
        PanelPrincipalRenuncia.add(jLabel84);
        jLabel84.setBounds(610, 2440, 0, 0);

        jLabel85.setName("jLabel85"); // NOI18N
        PanelPrincipalRenuncia.add(jLabel85);
        jLabel85.setBounds(430, 3860, 100, 0);

        jLabel86.setName("jLabel86"); // NOI18N
        PanelPrincipalRenuncia.add(jLabel86);
        jLabel86.setBounds(400, 3780, 100, 0);

        jLabel87.setName("jLabel87"); // NOI18N
        PanelPrincipalRenuncia.add(jLabel87);
        jLabel87.setBounds(400, 3820, 100, 0);

        jLabel88.setName("jLabel88"); // NOI18N
        PanelPrincipalRenuncia.add(jLabel88);
        jLabel88.setBounds(0, 2310, 190, 0);

        jSeparator32.setName("jSeparator32"); // NOI18N
        PanelPrincipalRenuncia.add(jSeparator32);
        jSeparator32.setBounds(10, 2520, 1020, 20);

        jScrollPane15.setName("jScrollPane15"); // NOI18N

        TablaRenAreaDeConocimiento.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null}
            },
            new String [] {
                "Profesor", "Renunciadas"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        TablaRenAreaDeConocimiento.setMaximumSize(new java.awt.Dimension(150, 272));
        TablaRenAreaDeConocimiento.setName("TablaRenAreaDeConocimiento"); // NOI18N
        jScrollPane15.setViewportView(TablaRenAreaDeConocimiento);
        TablaRenAreaDeConocimiento.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("TablaAprAreaDeConocimiento.columnModel.title0")); // NOI18N
        TablaRenAreaDeConocimiento.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("TablaAprAreaDeConocimiento.columnModel.title1")); // NOI18N

        PanelPrincipalRenuncia.add(jScrollPane15);
        jScrollPane15.setBounds(10, 1640, 970, 170);

        LabelGraficoRenAsig.setName("LabelGraficoRenAsig"); // NOI18N
        PanelPrincipalRenuncia.add(LabelGraficoRenAsig);
        LabelGraficoRenAsig.setBounds(10, 830, 980, 750);

        jLabel89.setFont(resourceMap.getFont("jLabel89.font")); // NOI18N
        jLabel89.setForeground(resourceMap.getColor("jLabel89.foreground")); // NOI18N
        jLabel89.setText(resourceMap.getString("jLabel89.text")); // NOI18N
        jLabel89.setName("jLabel89"); // NOI18N
        PanelPrincipalRenuncia.add(jLabel89);
        jLabel89.setBounds(10, 1600, 280, 17);

        jButton12.setAction(actionMap.get("ReporteRenuncia")); // NOI18N
        jButton12.setIcon(resourceMap.getIcon("jButton12.icon")); // NOI18N
        jButton12.setText(resourceMap.getString("jButton12.text")); // NOI18N
        jButton12.setToolTipText(resourceMap.getString("jButton12.toolTipText")); // NOI18N
        jButton12.setName("jButton12"); // NOI18N
        PanelPrincipalRenuncia.add(jButton12);
        jButton12.setBounds(570, 10, 250, 30);

        ImprimirRen.setAction(actionMap.get("ImprimeRen")); // NOI18N
        ImprimirRen.setIcon(resourceMap.getIcon("ImprimirRen.icon")); // NOI18N
        ImprimirRen.setText(resourceMap.getString("ImprimirRen.text")); // NOI18N
        ImprimirRen.setToolTipText(resourceMap.getString("ImprimirRen.toolTipText")); // NOI18N
        ImprimirRen.setName("ImprimirRen"); // NOI18N
        PanelPrincipalRenuncia.add(ImprimirRen);
        ImprimirRen.setBounds(850, 10, 120, 30);

        jLabel55.setFont(resourceMap.getFont("jLabel55.font")); // NOI18N
        jLabel55.setText(resourceMap.getString("jLabel55.text")); // NOI18N
        jLabel55.setName("jLabel55"); // NOI18N
        PanelPrincipalRenuncia.add(jLabel55);
        jLabel55.setBounds(350, 60, 150, 15);

        jLabel121.setFont(resourceMap.getFont("jLabel121.font")); // NOI18N
        jLabel121.setText(resourceMap.getString("jLabel121.text")); // NOI18N
        jLabel121.setName("jLabel121"); // NOI18N
        PanelPrincipalRenuncia.add(jLabel121);
        jLabel121.setBounds(10, 60, 252, 16);

        TotalAsignaturasInscritasRen.setFont(resourceMap.getFont("TotalAsignaturasInscritasRen.font")); // NOI18N
        TotalAsignaturasInscritasRen.setText(resourceMap.getString("TotalAsignaturasInscritasRen.text")); // NOI18N
        TotalAsignaturasInscritasRen.setName("TotalAsignaturasInscritasRen"); // NOI18N
        PanelPrincipalRenuncia.add(TotalAsignaturasInscritasRen);
        TotalAsignaturasInscritasRen.setBounds(400, 80, 90, 30);

        RenunciaPane.setViewportView(PanelPrincipalRenuncia);

        PanelGeneralReportes.addTab("Renuncia", RenunciaPane);

        Causales_Eliminacion.setName("Causales_Eliminacion"); // NOI18N

        PanelPrincipalEliminacion.setMaximumSize(PanelPrincipalAprobacion.preferredSize());
        PanelPrincipalEliminacion.setName("PanelPrincipalEliminacion"); // NOI18N
        PanelPrincipalEliminacion.setPreferredSize(new java.awt.Dimension(800, 2000));
        PanelPrincipalEliminacion.setLayout(null);

        jLabel58.setFont(resourceMap.getFont("jLabel58.font")); // NOI18N
        jLabel58.setForeground(resourceMap.getColor("jLabel58.foreground")); // NOI18N
        jLabel58.setText(resourceMap.getString("jLabel58.text")); // NOI18N
        jLabel58.setName("jLabel58"); // NOI18N
        PanelPrincipalEliminacion.add(jLabel58);
        jLabel58.setBounds(10, 10, 360, 17);

        jLabel59.setFont(resourceMap.getFont("jLabel59.font")); // NOI18N
        jLabel59.setText(resourceMap.getString("jLabel59.text")); // NOI18N
        jLabel59.setName("jLabel59"); // NOI18N
        PanelPrincipalEliminacion.add(jLabel59);
        jLabel59.setBounds(10, 60, 402, 16);

        CantPerdidasCea.setFont(resourceMap.getFont("CantPerdidasCea.font")); // NOI18N
        CantPerdidasCea.setName("CantPerdidasCea"); // NOI18N
        PanelPrincipalEliminacion.add(CantPerdidasCea);
        CantPerdidasCea.setBounds(420, 50, 70, 30);

        jLabel60.setFont(resourceMap.getFont("jLabel60.font")); // NOI18N
        jLabel60.setForeground(resourceMap.getColor("jLabel60.foreground")); // NOI18N
        jLabel60.setText(resourceMap.getString("jLabel60.text")); // NOI18N
        jLabel60.setName("jLabel60"); // NOI18N
        PanelPrincipalEliminacion.add(jLabel60);
        jLabel60.setBounds(10, 140, 540, 16);

        jLabel61.setFont(resourceMap.getFont("jLabel61.font")); // NOI18N
        jLabel61.setForeground(resourceMap.getColor("jLabel61.foreground")); // NOI18N
        jLabel61.setText(resourceMap.getString("jLabel61.text")); // NOI18N
        jLabel61.setName("jLabel61"); // NOI18N
        PanelPrincipalEliminacion.add(jLabel61);
        jLabel61.setBounds(10, 2500, 350, 17);

        LabelGraficoPeriodo3.setName("LabelGraficoPeriodo3"); // NOI18N
        PanelPrincipalEliminacion.add(LabelGraficoPeriodo3);
        LabelGraficoPeriodo3.setBounds(406, 1748, 0, 236);

        LabelGraficoAprAsignatura3.setName("LabelGraficoAprAsignatura3"); // NOI18N
        PanelPrincipalEliminacion.add(LabelGraficoAprAsignatura3);
        LabelGraficoAprAsignatura3.setBounds(2004, 3560, 397, 0);

        jLabel69.setFont(resourceMap.getFont("jLabel69.font")); // NOI18N
        jLabel69.setForeground(resourceMap.getColor("jLabel69.foreground")); // NOI18N
        jLabel69.setText(resourceMap.getString("jLabel69.text")); // NOI18N
        jLabel69.setName("jLabel69"); // NOI18N
        PanelPrincipalEliminacion.add(jLabel69);
        jLabel69.setBounds(10, 740, 400, 17);

        LabelGraficoCeaPeriodo.setName("LabelGraficoCeaPeriodo"); // NOI18N
        PanelPrincipalEliminacion.add(LabelGraficoCeaPeriodo);
        LabelGraficoCeaPeriodo.setBounds(10, 2710, 980, 800);

        jScrollPane17.setName("jScrollPane17"); // NOI18N

        TablaCeaAsignatura.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
        TablaCeaAsignatura.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null}
            },
            new String [] {
                "Asignatura", "Renunciadas"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        TablaCeaAsignatura.setMaximumSize(new java.awt.Dimension(150, 272));
        TablaCeaAsignatura.setName("TablaCeaAsignatura"); // NOI18N
        jScrollPane17.setViewportView(TablaCeaAsignatura);
        TablaCeaAsignatura.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("TablaAprAsignatura.columnModel.title0")); // NOI18N
        TablaCeaAsignatura.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("TablaAprAsignatura.columnModel.title1")); // NOI18N

        PanelPrincipalEliminacion.add(jScrollPane17);
        jScrollPane17.setBounds(10, 780, 980, 150);

        LabelGraficoCeaAreaConocimiento.setName("LabelGraficoCeaAreaConocimiento"); // NOI18N
        PanelPrincipalEliminacion.add(LabelGraficoCeaAreaConocimiento);
        LabelGraficoCeaAreaConocimiento.setBounds(10, 1830, 970, 620);

        jScrollPane18.setName("jScrollPane18"); // NOI18N

        TablaCeaPeriodo.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null}
            },
            new String [] {
                "Profesor", "Renunciadas"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        TablaCeaPeriodo.setMaximumSize(new java.awt.Dimension(150, 272));
        TablaCeaPeriodo.setName("TablaCeaPeriodo"); // NOI18N
        jScrollPane18.setViewportView(TablaCeaPeriodo);
        TablaCeaPeriodo.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("TablaAprProfesor.columnModel.title0")); // NOI18N
        TablaCeaPeriodo.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("TablaAprProfesor.columnModel.title1")); // NOI18N

        PanelPrincipalEliminacion.add(jScrollPane18);
        jScrollPane18.setBounds(10, 2540, 970, 170);

        jSeparator30.setName("jSeparator30"); // NOI18N
        PanelPrincipalEliminacion.add(jSeparator30);
        jSeparator30.setBounds(10, 160, 1010, 10);

        jSeparator33.setName("jSeparator33"); // NOI18N
        PanelPrincipalEliminacion.add(jSeparator33);
        jSeparator33.setBounds(10, 40, 1010, 2);

        jSeparator34.setName("jSeparator34"); // NOI18N
        PanelPrincipalEliminacion.add(jSeparator34);
        jSeparator34.setBounds(10, 760, 1010, 10);

        jSeparator35.setName("jSeparator35"); // NOI18N
        PanelPrincipalEliminacion.add(jSeparator35);
        jSeparator35.setBounds(0, 1170, 960, 0);

        jSeparator36.setName("jSeparator36"); // NOI18N
        PanelPrincipalEliminacion.add(jSeparator36);
        jSeparator36.setBounds(10, 1620, 1020, 20);

        jLabel77.setName("jLabel77"); // NOI18N
        PanelPrincipalEliminacion.add(jLabel77);
        jLabel77.setBounds(580, 2350, 30, 0);

        jLabel90.setName("jLabel90"); // NOI18N
        PanelPrincipalEliminacion.add(jLabel90);
        jLabel90.setBounds(610, 2440, 0, 0);

        jLabel91.setName("jLabel91"); // NOI18N
        PanelPrincipalEliminacion.add(jLabel91);
        jLabel91.setBounds(430, 3860, 100, 0);

        jLabel92.setName("jLabel92"); // NOI18N
        PanelPrincipalEliminacion.add(jLabel92);
        jLabel92.setBounds(400, 3780, 100, 0);

        jLabel93.setName("jLabel93"); // NOI18N
        PanelPrincipalEliminacion.add(jLabel93);
        jLabel93.setBounds(400, 3820, 100, 0);

        jLabel94.setName("jLabel94"); // NOI18N
        PanelPrincipalEliminacion.add(jLabel94);
        jLabel94.setBounds(0, 2310, 190, 0);

        jSeparator37.setName("jSeparator37"); // NOI18N
        PanelPrincipalEliminacion.add(jSeparator37);
        jSeparator37.setBounds(10, 2520, 1020, 20);

        jScrollPane19.setName("jScrollPane19"); // NOI18N

        TablaCeaAreaDeConocimiento.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null}
            },
            new String [] {
                "Profesor", "Renunciadas"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        TablaCeaAreaDeConocimiento.setMaximumSize(new java.awt.Dimension(150, 272));
        TablaCeaAreaDeConocimiento.setName("TablaCeaAreaDeConocimiento"); // NOI18N
        jScrollPane19.setViewportView(TablaCeaAreaDeConocimiento);
        TablaCeaAreaDeConocimiento.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("TablaAprAreaDeConocimiento.columnModel.title0")); // NOI18N
        TablaCeaAreaDeConocimiento.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("TablaAprAreaDeConocimiento.columnModel.title1")); // NOI18N

        PanelPrincipalEliminacion.add(jScrollPane19);
        jScrollPane19.setBounds(10, 1640, 970, 170);

        LabelGraficoCeaAsignatura.setText(resourceMap.getString("LabelGraficoCeaAsignatura.text")); // NOI18N
        LabelGraficoCeaAsignatura.setName("LabelGraficoCeaAsignatura"); // NOI18N
        PanelPrincipalEliminacion.add(LabelGraficoCeaAsignatura);
        LabelGraficoCeaAsignatura.setBounds(10, 940, 980, 630);

        jLabel95.setFont(resourceMap.getFont("jLabel95.font")); // NOI18N
        jLabel95.setForeground(resourceMap.getColor("jLabel95.foreground")); // NOI18N
        jLabel95.setText(resourceMap.getString("jLabel95.text")); // NOI18N
        jLabel95.setName("jLabel95"); // NOI18N
        PanelPrincipalEliminacion.add(jLabel95);
        jLabel95.setBounds(10, 1600, 450, 17);

        jButton20.setAction(actionMap.get("ReporteCausalesEliminacion")); // NOI18N
        jButton20.setIcon(resourceMap.getIcon("jButton20.icon")); // NOI18N
        jButton20.setText(resourceMap.getString("jButton20.text")); // NOI18N
        jButton20.setToolTipText(resourceMap.getString("jButton20.toolTipText")); // NOI18N
        jButton20.setName("jButton20"); // NOI18N
        PanelPrincipalEliminacion.add(jButton20);
        jButton20.setBounds(520, 10, 300, 30);

        ImprimirCea.setAction(actionMap.get("ImprimeElim")); // NOI18N
        ImprimirCea.setIcon(resourceMap.getIcon("ImprimirCea.icon")); // NOI18N
        ImprimirCea.setText(resourceMap.getString("ImprimirCea.text")); // NOI18N
        ImprimirCea.setToolTipText(resourceMap.getString("ImprimirCea.toolTipText")); // NOI18N
        ImprimirCea.setName("ImprimirCea"); // NOI18N
        PanelPrincipalEliminacion.add(ImprimirCea);
        ImprimirCea.setBounds(850, 10, 120, 30);

        jLabel65.setFont(resourceMap.getFont("jLabel65.font")); // NOI18N
        jLabel65.setText(resourceMap.getString("jLabel65.text")); // NOI18N
        jLabel65.setName("jLabel65"); // NOI18N
        PanelPrincipalEliminacion.add(jLabel65);
        jLabel65.setBounds(500, 60, 230, 15);

        jLabel66.setText(resourceMap.getString("jLabel66.text")); // NOI18N
        jLabel66.setName("jLabel66"); // NOI18N
        PanelPrincipalEliminacion.add(jLabel66);
        jLabel66.setBounds(10, 220, 540, 14);

        jLabel67.setText(resourceMap.getString("jLabel67.text")); // NOI18N
        jLabel67.setName("jLabel67"); // NOI18N
        PanelPrincipalEliminacion.add(jLabel67);
        jLabel67.setBounds(10, 180, 460, 14);

        jLabel71.setText(resourceMap.getString("jLabel71.text")); // NOI18N
        jLabel71.setName("jLabel71"); // NOI18N
        PanelPrincipalEliminacion.add(jLabel71);
        jLabel71.setBounds(10, 260, 490, 14);

        jLabel74.setText(resourceMap.getString("jLabel74.text")); // NOI18N
        jLabel74.setName("jLabel74"); // NOI18N
        PanelPrincipalEliminacion.add(jLabel74);
        jLabel74.setBounds(10, 300, 480, 14);

        jSeparator38.setName("jSeparator38"); // NOI18N
        PanelPrincipalEliminacion.add(jSeparator38);
        jSeparator38.setBounds(540, 190, 0, 2);

        CeaAusentismo.setFont(resourceMap.getFont("CeaAusentismo.font")); // NOI18N
        CeaAusentismo.setText(resourceMap.getString("CeaAusentismo.text")); // NOI18N
        CeaAusentismo.setName("CeaAusentismo"); // NOI18N
        PanelPrincipalEliminacion.add(CeaAusentismo);
        CeaAusentismo.setBounds(560, 290, 170, 23);

        CeaSegundaInstancia.setFont(resourceMap.getFont("CeaSegundaInstancia.font")); // NOI18N
        CeaSegundaInstancia.setName("CeaSegundaInstancia"); // NOI18N
        PanelPrincipalEliminacion.add(CeaSegundaInstancia);
        CeaSegundaInstancia.setBounds(560, 177, 170, 23);

        CeaMasDeSegundaInstancia.setFont(resourceMap.getFont("CeaMasDeSegundaInstancia.font")); // NOI18N
        CeaMasDeSegundaInstancia.setName("CeaMasDeSegundaInstancia"); // NOI18N
        PanelPrincipalEliminacion.add(CeaMasDeSegundaInstancia);
        CeaMasDeSegundaInstancia.setBounds(560, 210, 170, 23);

        CeaBajoCredito.setFont(resourceMap.getFont("CeaBajoCredito.font")); // NOI18N
        CeaBajoCredito.setName("CeaBajoCredito"); // NOI18N
        PanelPrincipalEliminacion.add(CeaBajoCredito);
        CeaBajoCredito.setBounds(560, 250, 170, 23);

        GraficoCeaCausales.setText(resourceMap.getString("GraficoCeaCausales.text")); // NOI18N
        GraficoCeaCausales.setName("GraficoCeaCausales"); // NOI18N
        PanelPrincipalEliminacion.add(GraficoCeaCausales);
        GraficoCeaCausales.setBounds(50, 380, 930, 340);

        jLabel96.setFont(resourceMap.getFont("jLabel96.font")); // NOI18N
        jLabel96.setText(resourceMap.getString("jLabel96.text")); // NOI18N
        jLabel96.setName("jLabel96"); // NOI18N
        PanelPrincipalEliminacion.add(jLabel96);
        jLabel96.setBounds(10, 90, 200, 15);

        TotalAsigInscritasCea.setFont(resourceMap.getFont("TotalAsigInscritasCea.font")); // NOI18N
        TotalAsigInscritasCea.setText(resourceMap.getString("TotalAsigInscritasCea.text")); // NOI18N
        TotalAsigInscritasCea.setName("TotalAsigInscritasCea"); // NOI18N
        PanelPrincipalEliminacion.add(TotalAsigInscritasCea);
        TotalAsigInscritasCea.setBounds(220, 80, 80, 30);

        jLabel97.setFont(resourceMap.getFont("jLabel97.font")); // NOI18N
        jLabel97.setText(resourceMap.getString("jLabel97.text")); // NOI18N
        jLabel97.setName("jLabel97"); // NOI18N
        PanelPrincipalEliminacion.add(jLabel97);
        jLabel97.setBounds(310, 90, 100, 15);

        CantAlumnInscrCea.setFont(resourceMap.getFont("CantAlumnInscrCea.font")); // NOI18N
        CantAlumnInscrCea.setText(resourceMap.getString("CantAlumnInscrCea.text")); // NOI18N
        CantAlumnInscrCea.setName("CantAlumnInscrCea"); // NOI18N
        PanelPrincipalEliminacion.add(CantAlumnInscrCea);
        CantAlumnInscrCea.setBounds(420, 80, 70, 30);

        jLabel98.setFont(resourceMap.getFont("jLabel98.font")); // NOI18N
        jLabel98.setText(resourceMap.getString("jLabel98.text")); // NOI18N
        jLabel98.setName("jLabel98"); // NOI18N
        PanelPrincipalEliminacion.add(jLabel98);
        jLabel98.setBounds(500, 90, 100, 14);

        jButton4.setAction(actionMap.get("DetalleElimAusent")); // NOI18N
        jButton4.setText(resourceMap.getString("jButton4.text")); // NOI18N
        jButton4.setName("jButton4"); // NOI18N
        PanelPrincipalEliminacion.add(jButton4);
        jButton4.setBounds(740, 290, 110, 23);

        jButton6.setAction(actionMap.get("Detalle2daInstancia")); // NOI18N
        jButton6.setText(resourceMap.getString("jButton6.text")); // NOI18N
        jButton6.setName("jButton6"); // NOI18N
        PanelPrincipalEliminacion.add(jButton6);
        jButton6.setBounds(740, 180, 110, 23);

        jButton7.setAction(actionMap.get("DetalleMasDe2daInstancia")); // NOI18N
        jButton7.setText(resourceMap.getString("jButton7.text")); // NOI18N
        jButton7.setName("jButton7"); // NOI18N
        PanelPrincipalEliminacion.add(jButton7);
        jButton7.setBounds(740, 210, 110, 23);

        jButton9.setAction(actionMap.get("DetalleElimCredit")); // NOI18N
        jButton9.setText(resourceMap.getString("jButton9.text")); // NOI18N
        jButton9.setName("jButton9"); // NOI18N
        PanelPrincipalEliminacion.add(jButton9);
        jButton9.setBounds(740, 250, 110, 23);

        Causales_Eliminacion.setViewportView(PanelPrincipalEliminacion);

        PanelGeneralReportes.addTab(resourceMap.getString("Causales_Eliminacion.TabConstraints.tabTitle"), Causales_Eliminacion); // NOI18N

        Retiros_Temporales.setName("Retiros_Temporales"); // NOI18N

        PanelPrincipalPRT.setMaximumSize(PanelPrincipalAprobacion.preferredSize());
        PanelPrincipalPRT.setName("PanelPrincipalPRT"); // NOI18N
        PanelPrincipalPRT.setPreferredSize(new java.awt.Dimension(800, 2000));
        PanelPrincipalPRT.setLayout(null);

        jLabel105.setFont(resourceMap.getFont("jLabel105.font")); // NOI18N
        jLabel105.setForeground(resourceMap.getColor("jLabel105.foreground")); // NOI18N
        jLabel105.setText(resourceMap.getString("jLabel105.text")); // NOI18N
        jLabel105.setName("jLabel105"); // NOI18N
        PanelPrincipalPRT.add(jLabel105);
        jLabel105.setBounds(10, 10, 360, 17);

        jLabel106.setFont(resourceMap.getFont("jLabel106.font")); // NOI18N
        jLabel106.setText(resourceMap.getString("jLabel106.text")); // NOI18N
        jLabel106.setName("jLabel106"); // NOI18N
        PanelPrincipalPRT.add(jLabel106);
        jLabel106.setBounds(10, 80, 330, 16);

        NivelRetirosTemporales.setFont(resourceMap.getFont("NivelRetirosTemporales.font")); // NOI18N
        NivelRetirosTemporales.setName("NivelRetirosTemporales"); // NOI18N
        PanelPrincipalPRT.add(NivelRetirosTemporales);
        NivelRetirosTemporales.setBounds(330, 70, 70, 30);

        jLabel107.setFont(resourceMap.getFont("jLabel107.font")); // NOI18N
        jLabel107.setForeground(resourceMap.getColor("jLabel107.foreground")); // NOI18N
        jLabel107.setText(resourceMap.getString("jLabel107.text")); // NOI18N
        jLabel107.setName("jLabel107"); // NOI18N
        PanelPrincipalPRT.add(jLabel107);
        jLabel107.setBounds(10, 140, 540, 16);

        LabelGraficoPeriodo4.setName("LabelGraficoPeriodo4"); // NOI18N
        PanelPrincipalPRT.add(LabelGraficoPeriodo4);
        LabelGraficoPeriodo4.setBounds(406, 1748, 0, 236);

        LabelGraficoAprAsignatura4.setName("LabelGraficoAprAsignatura4"); // NOI18N
        PanelPrincipalPRT.add(LabelGraficoAprAsignatura4);
        LabelGraficoAprAsignatura4.setBounds(2004, 3560, 397, 0);

        jLabel109.setFont(resourceMap.getFont("jLabel109.font")); // NOI18N
        jLabel109.setForeground(resourceMap.getColor("jLabel109.foreground")); // NOI18N
        jLabel109.setText(resourceMap.getString("jLabel109.text")); // NOI18N
        jLabel109.setName("jLabel109"); // NOI18N
        PanelPrincipalPRT.add(jLabel109);
        jLabel109.setBounds(10, 740, 400, 17);

        jScrollPane20.setName("jScrollPane20"); // NOI18N

        TablaPyRTRetencion.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
        TablaPyRTRetencion.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Periodo", "Inscritos en Periodo", "Alumnos de Primer Año", "Retención (%)"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        TablaPyRTRetencion.setMaximumSize(new java.awt.Dimension(150, 272));
        TablaPyRTRetencion.setName("TablaPyRTRetencion"); // NOI18N
        jScrollPane20.setViewportView(TablaPyRTRetencion);
        TablaPyRTRetencion.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("TablaAprAsignatura.columnModel.title0")); // NOI18N
        TablaPyRTRetencion.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("TablaAprAsignatura.columnModel.title1")); // NOI18N
        TablaPyRTRetencion.getColumnModel().getColumn(2).setHeaderValue(resourceMap.getString("TablaPyRTRetencion.columnModel.title2")); // NOI18N
        TablaPyRTRetencion.getColumnModel().getColumn(3).setHeaderValue(resourceMap.getString("TablaPyRTRetencion.columnModel.title3")); // NOI18N

        PanelPrincipalPRT.add(jScrollPane20);
        jScrollPane20.setBounds(10, 830, 980, 150);

        LabelGraficoTasaTitulacion.setName("LabelGraficoTasaTitulacion"); // NOI18N
        PanelPrincipalPRT.add(LabelGraficoTasaTitulacion);
        LabelGraficoTasaTitulacion.setBounds(10, 1810, 970, 620);

        jSeparator39.setName("jSeparator39"); // NOI18N
        PanelPrincipalPRT.add(jSeparator39);
        jSeparator39.setBounds(10, 160, 1010, 10);

        jSeparator40.setName("jSeparator40"); // NOI18N
        PanelPrincipalPRT.add(jSeparator40);
        jSeparator40.setBounds(10, 40, 1010, 2);

        jSeparator41.setName("jSeparator41"); // NOI18N
        PanelPrincipalPRT.add(jSeparator41);
        jSeparator41.setBounds(10, 760, 1010, 10);

        jSeparator42.setName("jSeparator42"); // NOI18N
        PanelPrincipalPRT.add(jSeparator42);
        jSeparator42.setBounds(0, 1170, 960, 0);

        jSeparator43.setName("jSeparator43"); // NOI18N
        PanelPrincipalPRT.add(jSeparator43);
        jSeparator43.setBounds(10, 2510, 1020, 20);

        jLabel110.setName("jLabel110"); // NOI18N
        PanelPrincipalPRT.add(jLabel110);
        jLabel110.setBounds(580, 2350, 30, 0);

        jLabel111.setName("jLabel111"); // NOI18N
        PanelPrincipalPRT.add(jLabel111);
        jLabel111.setBounds(610, 2440, 0, 0);

        jLabel112.setName("jLabel112"); // NOI18N
        PanelPrincipalPRT.add(jLabel112);
        jLabel112.setBounds(430, 3860, 100, 0);

        jLabel113.setName("jLabel113"); // NOI18N
        PanelPrincipalPRT.add(jLabel113);
        jLabel113.setBounds(400, 3780, 100, 0);

        jLabel114.setName("jLabel114"); // NOI18N
        PanelPrincipalPRT.add(jLabel114);
        jLabel114.setBounds(400, 3820, 100, 0);

        jLabel115.setName("jLabel115"); // NOI18N
        PanelPrincipalPRT.add(jLabel115);
        jLabel115.setBounds(0, 2310, 190, 0);

        jScrollPane22.setName("jScrollPane22"); // NOI18N

        TablaTasaTitulacion.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Promocion", " Titulación", "Cantidad de Egresados", "Tasa Titulación %"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false, true
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        TablaTasaTitulacion.setMaximumSize(new java.awt.Dimension(150, 272));
        TablaTasaTitulacion.setName("TablaTasaTitulacion"); // NOI18N
        jScrollPane22.setViewportView(TablaTasaTitulacion);
        TablaTasaTitulacion.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("TablaAprAreaDeConocimiento.columnModel.title0")); // NOI18N
        TablaTasaTitulacion.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("TablaAprAreaDeConocimiento.columnModel.title1")); // NOI18N
        TablaTasaTitulacion.getColumnModel().getColumn(2).setHeaderValue(resourceMap.getString("TablaTasaTitulacion.columnModel.title2")); // NOI18N
        TablaTasaTitulacion.getColumnModel().getColumn(3).setHeaderValue(resourceMap.getString("TablaTasaTitulacion.columnModel.title3")); // NOI18N

        PanelPrincipalPRT.add(jScrollPane22);
        jScrollPane22.setBounds(20, 1630, 970, 170);

        LabelGraficoRetencionAlumnos.setName("LabelGraficoRetencionAlumnos"); // NOI18N
        PanelPrincipalPRT.add(LabelGraficoRetencionAlumnos);
        LabelGraficoRetencionAlumnos.setBounds(0, 990, 980, 580);

        jLabel116.setFont(resourceMap.getFont("jLabel116.font")); // NOI18N
        jLabel116.setForeground(resourceMap.getColor("jLabel116.foreground")); // NOI18N
        jLabel116.setText(resourceMap.getString("jLabel116.text")); // NOI18N
        jLabel116.setName("jLabel116"); // NOI18N
        PanelPrincipalPRT.add(jLabel116);
        jLabel116.setBounds(10, 2490, 450, 15);

        jButton21.setAction(actionMap.get("ReportePyRT")); // NOI18N
        jButton21.setIcon(resourceMap.getIcon("jButton21.icon")); // NOI18N
        jButton21.setText(resourceMap.getString("jButton21.text")); // NOI18N
        jButton21.setToolTipText(resourceMap.getString("jButton21.toolTipText")); // NOI18N
        jButton21.setName("jButton21"); // NOI18N
        PanelPrincipalPRT.add(jButton21);
        jButton21.setBounds(520, 10, 300, 30);

        ImprimirPRT.setAction(actionMap.get("ImprimePyRT")); // NOI18N
        ImprimirPRT.setIcon(resourceMap.getIcon("ImprimirPRT.icon")); // NOI18N
        ImprimirPRT.setText(resourceMap.getString("ImprimirPRT.text")); // NOI18N
        ImprimirPRT.setToolTipText(resourceMap.getString("ImprimirPRT.toolTipText")); // NOI18N
        ImprimirPRT.setName("ImprimirPRT"); // NOI18N
        PanelPrincipalPRT.add(ImprimirPRT);
        ImprimirPRT.setBounds(850, 10, 120, 30);

        jLabel117.setFont(resourceMap.getFont("jLabel117.font")); // NOI18N
        jLabel117.setText(resourceMap.getString("jLabel117.text")); // NOI18N
        jLabel117.setName("jLabel117"); // NOI18N
        PanelPrincipalPRT.add(jLabel117);
        jLabel117.setBounds(400, 70, 30, 30);

        jLabel118.setText(resourceMap.getString("jLabel118.text")); // NOI18N
        jLabel118.setName("jLabel118"); // NOI18N
        PanelPrincipalPRT.add(jLabel118);
        jLabel118.setBounds(10, 230, 500, 14);

        jLabel119.setText(resourceMap.getString("jLabel119.text")); // NOI18N
        jLabel119.setName("jLabel119"); // NOI18N
        PanelPrincipalPRT.add(jLabel119);
        jLabel119.setBounds(10, 190, 460, 14);

        jLabel120.setText(resourceMap.getString("jLabel120.text")); // NOI18N
        jLabel120.setName("jLabel120"); // NOI18N
        PanelPrincipalPRT.add(jLabel120);
        jLabel120.setBounds(10, 270, 490, 14);

        jSeparator45.setName("jSeparator45"); // NOI18N
        PanelPrincipalPRT.add(jSeparator45);
        jSeparator45.setBounds(540, 190, 0, 2);

        RT1Semestre.setFont(resourceMap.getFont("RT1Semestre.font")); // NOI18N
        RT1Semestre.setName("RT1Semestre"); // NOI18N
        PanelPrincipalPRT.add(RT1Semestre);
        RT1Semestre.setBounds(380, 180, 280, 30);

        RT2Semestres.setFont(resourceMap.getFont("RT2Semestres.font")); // NOI18N
        RT2Semestres.setName("RT2Semestres"); // NOI18N
        PanelPrincipalPRT.add(RT2Semestres);
        RT2Semestres.setBounds(380, 220, 280, 30);

        RT3SemestresAlt.setFont(resourceMap.getFont("RT3SemestresAlt.font")); // NOI18N
        RT3SemestresAlt.setName("RT3SemestresAlt"); // NOI18N
        PanelPrincipalPRT.add(RT3SemestresAlt);
        RT3SemestresAlt.setBounds(380, 260, 280, 30);

        LabelGraficoPyRTRetiros.setName("LabelGraficoPyRTRetiros"); // NOI18N
        PanelPrincipalPRT.add(LabelGraficoPyRTRetiros);
        LabelGraficoPyRTRetiros.setBounds(50, 340, 930, 340);

        jLabel122.setFont(resourceMap.getFont("jLabel122.font")); // NOI18N
        jLabel122.setText(resourceMap.getString("jLabel122.text")); // NOI18N
        jLabel122.setName("jLabel122"); // NOI18N
        PanelPrincipalPRT.add(jLabel122);
        jLabel122.setBounds(430, 80, 90, 16);

        CantidadAlumnosInscritosPRT.setFont(resourceMap.getFont("CantidadAlumnosInscritosPRT.font")); // NOI18N
        CantidadAlumnosInscritosPRT.setName("CantidadAlumnosInscritosPRT"); // NOI18N
        PanelPrincipalPRT.add(CantidadAlumnosInscritosPRT);
        CantidadAlumnosInscritosPRT.setBounds(520, 70, 80, 30);

        jLabel123.setFont(resourceMap.getFont("jLabel123.font")); // NOI18N
        jLabel123.setText(resourceMap.getString("jLabel123.text")); // NOI18N
        jLabel123.setName("jLabel123"); // NOI18N
        PanelPrincipalPRT.add(jLabel123);
        jLabel123.setBounds(610, 80, 100, 15);

        jLabel4.setFont(resourceMap.getFont("jLabel4.font")); // NOI18N
        jLabel4.setForeground(resourceMap.getColor("jLabel4.foreground")); // NOI18N
        jLabel4.setText(resourceMap.getString("jLabel4.text")); // NOI18N
        jLabel4.setName("jLabel4"); // NOI18N
        PanelPrincipalPRT.add(jLabel4);
        jLabel4.setBounds(10, 780, 210, 15);

        jLabel108.setFont(resourceMap.getFont("jLabel108.font")); // NOI18N
        jLabel108.setText(resourceMap.getString("jLabel108.text")); // NOI18N
        jLabel108.setName("jLabel108"); // NOI18N
        PanelPrincipalPRT.add(jLabel108);
        jLabel108.setBounds(10, 2530, 330, 17);

        DuracionPlanEstudios.setFont(resourceMap.getFont("DuracionPlanEstudios.font")); // NOI18N
        DuracionPlanEstudios.setText(resourceMap.getString("DuracionPlanEstudios.text")); // NOI18N
        DuracionPlanEstudios.setName("DuracionPlanEstudios"); // NOI18N
        PanelPrincipalPRT.add(DuracionPlanEstudios);
        DuracionPlanEstudios.setBounds(310, 2520, 110, 40);

        jLabel125.setFont(resourceMap.getFont("jLabel125.font")); // NOI18N
        jLabel125.setForeground(resourceMap.getColor("jLabel125.foreground")); // NOI18N
        jLabel125.setText(resourceMap.getString("jLabel125.text")); // NOI18N
        jLabel125.setName("jLabel125"); // NOI18N
        PanelPrincipalPRT.add(jLabel125);
        jLabel125.setBounds(20, 1590, 400, 15);

        jSeparator44.setName("jSeparator44"); // NOI18N
        PanelPrincipalPRT.add(jSeparator44);
        jSeparator44.setBounds(20, 1610, 1010, 10);

        jLabel124.setFont(resourceMap.getFont("jLabel124.font")); // NOI18N
        jLabel124.setText(resourceMap.getString("jLabel124.text")); // NOI18N
        jLabel124.setName("jLabel124"); // NOI18N
        PanelPrincipalPRT.add(jLabel124);
        jLabel124.setBounds(430, 2530, 46, 17);

        Retiros_Temporales.setViewportView(PanelPrincipalPRT);

        PanelGeneralReportes.addTab(resourceMap.getString("Retiros_Temporales.TabConstraints.tabTitle"), Retiros_Temporales); // NOI18N

        TabsPanel.setViewportView(PanelGeneralReportes);

        jToolBar1.setFloatable(false);
        jToolBar1.setName("jToolBar1"); // NOI18N

        jSeparator15.setName("jSeparator15"); // NOI18N
        jToolBar1.add(jSeparator15);

        jButton1.setAction(actionMap.get("IngresoFuenteAsignaturas")); // NOI18N
        jButton1.setText(resourceMap.getString("jButton1.text")); // NOI18N
        jButton1.setFocusable(false);
        jButton1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButton1.setName("jButton1"); // NOI18N
        jButton1.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(jButton1);

        jButton2.setAction(actionMap.get("IngresoFuenteMalla")); // NOI18N
        jButton2.setToolTipText(resourceMap.getString("jButton2.toolTipText")); // NOI18N
        jButton2.setFocusable(false);
        jButton2.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButton2.setName("jButton2"); // NOI18N
        jButton2.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(jButton2);

        jButton3.setAction(actionMap.get("ProcesaDatosAsignaturas")); // NOI18N
        jButton3.setText(resourceMap.getString("jButton3.text")); // NOI18N
        jButton3.setToolTipText(resourceMap.getString("jButton3.toolTipText")); // NOI18N
        jButton3.setFocusable(false);
        jButton3.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButton3.setName("jButton3"); // NOI18N
        jButton3.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(jButton3);

        jSeparator14.setName("jSeparator14"); // NOI18N
        jToolBar1.add(jSeparator14);

        jButton5.setAction(actionMap.get("ImprimeTodos")); // NOI18N
        jButton5.setIcon(resourceMap.getIcon("jButton5.icon")); // NOI18N
        jButton5.setText(resourceMap.getString("jButton5.text")); // NOI18N
        jButton5.setToolTipText(resourceMap.getString("jButton5.toolTipText")); // NOI18N
        jButton5.setFocusable(false);
        jButton5.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButton5.setName("jButton5"); // NOI18N
        jButton5.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(jButton5);

        jSeparator16.setName("jSeparator16"); // NOI18N
        jToolBar1.add(jSeparator16);

        javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
        mainPanel.setLayout(mainPanelLayout);
        mainPanelLayout.setHorizontalGroup(
            mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(mainPanelLayout.createSequentialGroup()
                .addGap(18, 18, 18)
                .addComponent(PanelOpcionesScroll, javax.swing.GroupLayout.PREFERRED_SIZE, 311, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(TabsPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 941, Short.MAX_VALUE))
            .addComponent(jToolBar1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 1276, Short.MAX_VALUE)
        );
        mainPanelLayout.setVerticalGroup(
            mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(mainPanelLayout.createSequentialGroup()
                .addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(TabsPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 737, Short.MAX_VALUE)
                    .addComponent(PanelOpcionesScroll, javax.swing.GroupLayout.DEFAULT_SIZE, 737, Short.MAX_VALUE))
                .addContainerGap())
        );

        statusPanel.setName("statusPanel"); // NOI18N

        statusPanelSeparator.setName("statusPanelSeparator"); // NOI18N

        statusMessageLabel.setName("statusMessageLabel"); // NOI18N

        statusAnimationLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        statusAnimationLabel.setName("statusAnimationLabel"); // NOI18N

        progressBar.setAutoscrolls(true);
        progressBar.setCursor(new java.awt.Cursor(java.awt.Cursor.WAIT_CURSOR));
        progressBar.setName("progressBar"); // NOI18N
        progressBar.setStringPainted(true);

        javax.swing.GroupLayout statusPanelLayout = new javax.swing.GroupLayout(statusPanel);
        statusPanel.setLayout(statusPanelLayout);
        statusPanelLayout.setHorizontalGroup(
            statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(statusPanelSeparator, javax.swing.GroupLayout.DEFAULT_SIZE, 1280, Short.MAX_VALUE)
            .addGroup(statusPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(statusMessageLabel)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 1110, Short.MAX_VALUE)
                .addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(statusAnimationLabel)
                .addContainerGap())
        );
        statusPanelLayout.setVerticalGroup(
            statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(statusPanelLayout.createSequentialGroup()
                .addComponent(statusPanelSeparator, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(statusMessageLabel)
                    .addComponent(statusAnimationLabel)
                    .addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(11, 11, 11))
        );

        jMenuBar1.setName("jMenuBar1"); // NOI18N

        jMenu1.setText(resourceMap.getString("jMenu1.text")); // NOI18N
        jMenu1.setName("jMenu1"); // NOI18N

        jMenu4.setText(resourceMap.getString("jMenu4.text")); // NOI18N

        jMenuItem3.setAction(actionMap.get("IngresoFuenteAsignaturas")); // NOI18N
        jMenuItem3.setText(resourceMap.getString("jMenuItem3.text")); // NOI18N
        jMenu4.add(jMenuItem3);

        jMenuItem4.setAction(actionMap.get("IngresoFuenteMalla")); // NOI18N
        jMenuItem4.setText(resourceMap.getString("jMenuItem4.text")); // NOI18N
        jMenuItem4.setName("jMenuItem4"); // NOI18N
        jMenu4.add(jMenuItem4);

        jMenu1.add(jMenu4);

        jMenuItem5.setAction(actionMap.get("ProcesaAsignaturas")); // NOI18N
        jMenuItem5.setText(resourceMap.getString("jMenuItem5.text")); // NOI18N
        jMenuItem5.setName("jMenuItem5"); // NOI18N
        jMenu1.add(jMenuItem5);

        jSeparator6.setName("jSeparator6"); // NOI18N
        jMenu1.add(jSeparator6);

        jMenu3.setIcon(resourceMap.getIcon("jMenu3.icon")); // NOI18N
        jMenu3.setText(resourceMap.getString("jMenu3.text")); // NOI18N
        jMenu3.setName("jMenu3"); // NOI18N

        jMenuItem1.setAction(actionMap.get("ImprimeApr")); // NOI18N
        jMenuItem1.setText(resourceMap.getString("jMenuItem1.text")); // NOI18N
        jMenuItem1.setName("jMenuItem1"); // NOI18N
        jMenu3.add(jMenuItem1);

        jMenuItem16.setAction(actionMap.get("ImprimeRpr")); // NOI18N
        jMenuItem16.setText(resourceMap.getString("jMenuItem16.text")); // NOI18N
        jMenuItem16.setName("jMenuItem16"); // NOI18N
        jMenu3.add(jMenuItem16);

        jMenuItem17.setAction(actionMap.get("ImprimeRen")); // NOI18N
        jMenuItem17.setText(resourceMap.getString("jMenuItem17.text")); // NOI18N
        jMenuItem17.setName("jMenuItem17"); // NOI18N
        jMenu3.add(jMenuItem17);

        jMenuItem15.setAction(actionMap.get("ImprimeElim")); // NOI18N
        jMenuItem15.setText(resourceMap.getString("jMenuItem15.text")); // NOI18N
        jMenuItem15.setName("jMenuItem15"); // NOI18N
        jMenu3.add(jMenuItem15);

        jMenuItem18.setAction(actionMap.get("ImprimePyRT")); // NOI18N
        jMenuItem18.setText(resourceMap.getString("jMenuItem18.text")); // NOI18N
        jMenuItem18.setName("jMenuItem18"); // NOI18N
        jMenu3.add(jMenuItem18);

        jMenu1.add(jMenu3);

        jSeparator7.setName("jSeparator7"); // NOI18N
        jMenu1.add(jSeparator7);

        jMenuItem2.setAction(actionMap.get("quit")); // NOI18N
        jMenuItem2.setName("jMenuItem2"); // NOI18N
        jMenu1.add(jMenuItem2);

        jMenuBar1.add(jMenu1);

        jMenu2.setText(resourceMap.getString("jMenu2.text")); // NOI18N

        jMenu5.setText(resourceMap.getString("jMenu5.text")); // NOI18N
        jMenu5.setName("jMenu5"); // NOI18N

        jMenuItem7.setAction(actionMap.get("ReporteAprobacion")); // NOI18N
        jMenuItem7.setText(resourceMap.getString("jMenuItem7.text")); // NOI18N
        jMenuItem7.setName("jMenuItem7"); // NOI18N
        jMenu5.add(jMenuItem7);

        jMenuItem8.setAction(actionMap.get("ReporteReprobacion")); // NOI18N
        jMenuItem8.setText(resourceMap.getString("jMenuItem8.text")); // NOI18N
        jMenuItem8.setName("jMenuItem8"); // NOI18N
        jMenu5.add(jMenuItem8);

        jMenuItem9.setAction(actionMap.get("ReporteRenuncia")); // NOI18N
        jMenuItem9.setText(resourceMap.getString("jMenuItem9.text")); // NOI18N
        jMenu5.add(jMenuItem9);

        jMenuItem10.setAction(actionMap.get("ReporteCausalesEliminacion")); // NOI18N
        jMenuItem10.setText(resourceMap.getString("jMenuItem10.text")); // NOI18N
        jMenuItem10.setName("jMenuItem10"); // NOI18N
        jMenu5.add(jMenuItem10);

        jMenuItem11.setAction(actionMap.get("ReportePyRT")); // NOI18N
        jMenuItem11.setText(resourceMap.getString("jMenuItem11.text")); // NOI18N
        jMenuItem11.setName("jMenuItem11"); // NOI18N
        jMenu5.add(jMenuItem11);

        jMenu2.add(jMenu5);

        jSeparator8.setName("jSeparator8"); // NOI18N
        jMenu2.add(jSeparator8);

        jMenuBar1.add(jMenu2);

        jMenu6.setText(resourceMap.getString("jMenu6.text")); // NOI18N

        jMenuItem14.setAction(actionMap.get("showAboutBox")); // NOI18N
        jMenuItem14.setText(resourceMap.getString("jMenuItem14.text")); // NOI18N
        jMenuItem14.setName("jMenuItem14"); // NOI18N
        jMenu6.add(jMenuItem14);

        jMenuBar1.add(jMenu6);

        jLabel5.setText(resourceMap.getString("jLabel5.text")); // NOI18N
        jLabel5.setName("jLabel5"); // NOI18N

        setComponent(mainPanel);
        setMenuBar(jMenuBar1);
        setStatusBar(statusPanel);
        setToolBar(jToolBar1);
        addPropertyChangeListener(new java.beans.PropertyChangeListener() {
            public void propertyChange(java.beans.PropertyChangeEvent evt) {
                formPropertyChange(evt);
            }
        });
    }// </editor-fold>//GEN-END:initComponents

private void formPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_formPropertyChange
    // TODO add your handling code here:
}//GEN-LAST:event_formPropertyChange

    // Variables declaration - do not modify//GEN-BEGIN:variables
    javax.swing.JTextField AnoComienzoCarrera;
    javax.swing.JTextField Ano_Desde;
    javax.swing.JTextField Ano_Hasta;
    javax.swing.JScrollPane AprobacionPane;
    javax.swing.JTextField Aprobados1instan;
    javax.swing.JButton BotonGeneraAprobacion;
    javax.swing.JTextField CantAlumnInscrCea;
    javax.swing.JTextField CantPerdidasCea;
    javax.swing.JTextField CantidadAlumnosInscritosPRT;
    javax.swing.JScrollPane Causales_Eliminacion;
    javax.swing.JTextField CeaAusentismo;
    javax.swing.JTextField CeaBajoCredito;
    javax.swing.JTextField CeaMasDeSegundaInstancia;
    javax.swing.JTextField CeaSegundaInstancia;
    javax.swing.JTextField CodigoCarrera;
    javax.swing.JScrollPane Datos_Generales;
    javax.swing.JTextField DuracionPlanEstudios;
    javax.swing.JTextField DuracionPrograma;
    javax.swing.JLabel GraficoCeaCausales;
    javax.swing.JButton ImprimirApr;
    javax.swing.JButton ImprimirCea;
    javax.swing.JButton ImprimirPRT;
    javax.swing.JButton ImprimirRen;
    javax.swing.JButton ImprimirRpr;
    javax.swing.JLabel LabelGraficoAprAreaConocimiento;
    javax.swing.JLabel LabelGraficoAprAsig1;
    javax.swing.JLabel LabelGraficoAprAsignatura;
    javax.swing.JLabel LabelGraficoAprAsignatura1;
    javax.swing.JLabel LabelGraficoAprAsignatura2;
    javax.swing.JLabel LabelGraficoAprAsignatura3;
    javax.swing.JLabel LabelGraficoAprAsignatura4;
    javax.swing.JLabel LabelGraficoAprPeriodo;
    javax.swing.JLabel LabelGraficoAprProfesor;
    javax.swing.JLabel LabelGraficoCeaAreaConocimiento;
    javax.swing.JLabel LabelGraficoCeaAsignatura;
    javax.swing.JLabel LabelGraficoCeaPeriodo;
    javax.swing.JLabel LabelGraficoPeriodo;
    javax.swing.JLabel LabelGraficoPeriodo1;
    javax.swing.JLabel LabelGraficoPeriodo2;
    javax.swing.JLabel LabelGraficoPeriodo3;
    javax.swing.JLabel LabelGraficoPeriodo4;
    javax.swing.JLabel LabelGraficoPyRTRetiros;
    javax.swing.JLabel LabelGraficoRenAreaConocimiento;
    javax.swing.JLabel LabelGraficoRenAsig;
    javax.swing.JLabel LabelGraficoRenPeriodo;
    javax.swing.JLabel LabelGraficoRenProfesor;
    javax.swing.JLabel LabelGraficoRetencionAlumnos;
    javax.swing.JLabel LabelGraficoRprAreaConocimiento;
    javax.swing.JLabel LabelGraficoRprAsig;
    javax.swing.JLabel LabelGraficoRprPeriodo;
    javax.swing.JLabel LabelGraficoRprProfesor;
    javax.swing.JLabel LabelGraficoTasaTitulacion;
    javax.swing.JTextField MasDeSegundaField;
    javax.swing.JComboBox Modalidad;
    javax.swing.JTextField NivelRetirosTemporales;
    javax.swing.JTextField NombreCarrera;
    javax.swing.JLabel NombreUniversidad;
    javax.swing.JTabbedPane PanelGeneralReportes;
    javax.swing.JPanel PanelOpciones;
    javax.swing.JScrollPane PanelOpcionesScroll;
    javax.swing.JPanel PanelPrincipalAprobacion;
    javax.swing.JPanel PanelPrincipalEliminacion;
    javax.swing.JPanel PanelPrincipalPRT;
    javax.swing.JPanel PanelPrincipalRenuncia;
    javax.swing.JPanel PanelPrincipalReprobacion;
    javax.swing.JTextField Periodo_Desde;
    javax.swing.JTextField Periodo_Hasta;
    javax.swing.JTextField PorcentAprReport;
    javax.swing.JTextField PorcentRenReport;
    javax.swing.JTextField PorcentRprReport;
    javax.swing.JTextField PorcentajeMasDeSegundaInstancia;
    javax.swing.JTextField PorcentajePrimeraInstancia;
    javax.swing.JTextField PorcentajeSegundaInstancia1;
    javax.swing.JTextField PrimeraInstanciaField;
    javax.swing.JTextField RT1Semestre;
    javax.swing.JTextField RT2Semestres;
    javax.swing.JTextField RT3SemestresAlt;
    javax.swing.JComboBox Regimen;
    javax.swing.JScrollPane RenunciaPane;
    javax.swing.JScrollPane ReprobacionPane;
    javax.swing.JScrollPane Retiros_Temporales;
    javax.swing.JComboBox Sede;
    javax.swing.JTextField SegundaInstanciaField;
    javax.swing.JTable TablaAprAreaDeConocimiento;
    javax.swing.JTable TablaAprAsignatura;
    javax.swing.JTable TablaAprPeriodo;
    javax.swing.JTable TablaAprProfesor;
    javax.swing.JTable TablaAsignaturas;
    javax.swing.JTable TablaCeaAreaDeConocimiento;
    javax.swing.JTable TablaCeaAsignatura;
    javax.swing.JTable TablaCeaPeriodo;
    javax.swing.JTable TablaMalla;
    javax.swing.JTable TablaPyRTRetencion;
    javax.swing.JTable TablaRenAreaDeConocimiento;
    javax.swing.JTable TablaRenAsignatura;
    javax.swing.JTable TablaRenPeriodo;
    javax.swing.JTable TablaRenProfesor;
    javax.swing.JTable TablaRenuncias;
    javax.swing.JTable TablaRprAreaDeConocimiento;
    javax.swing.JTable TablaRprAsignatura;
    javax.swing.JTable TablaRprPeriodo;
    javax.swing.JTable TablaRprProfesor;
    javax.swing.JTable TablaTasaTitulacion;
    javax.swing.JScrollPane TabsPanel;
    javax.swing.JTextField TotalAsigInscritasCea;
    javax.swing.JTextField TotalAsignaturas;
    javax.swing.JTextField TotalAsignaturasInscritasRen;
    javax.swing.JTextField TotalHoras;
    javax.swing.JLabel Universidad;
    javax.swing.JButton jButton1;
    javax.swing.JButton jButton10;
    javax.swing.JButton jButton12;
    javax.swing.JButton jButton14;
    javax.swing.JButton jButton15;
    javax.swing.JButton jButton18;
    javax.swing.JButton jButton2;
    javax.swing.JButton jButton20;
    javax.swing.JButton jButton21;
    javax.swing.JButton jButton3;
    javax.swing.JButton jButton4;
    javax.swing.JButton jButton5;
    javax.swing.JButton jButton6;
    javax.swing.JButton jButton7;
    javax.swing.JButton jButton8;
    javax.swing.JButton jButton9;
    javax.swing.JLabel jLabel1;
    javax.swing.JLabel jLabel10;
    javax.swing.JLabel jLabel100;
    javax.swing.JLabel jLabel101;
    javax.swing.JLabel jLabel102;
    javax.swing.JLabel jLabel103;
    javax.swing.JLabel jLabel104;
    javax.swing.JLabel jLabel105;
    javax.swing.JLabel jLabel106;
    javax.swing.JLabel jLabel107;
    javax.swing.JLabel jLabel108;
    javax.swing.JLabel jLabel109;
    javax.swing.JLabel jLabel11;
    javax.swing.JLabel jLabel110;
    javax.swing.JLabel jLabel111;
    javax.swing.JLabel jLabel112;
    javax.swing.JLabel jLabel113;
    javax.swing.JLabel jLabel114;
    javax.swing.JLabel jLabel115;
    javax.swing.JLabel jLabel116;
    javax.swing.JLabel jLabel117;
    javax.swing.JLabel jLabel118;
    javax.swing.JLabel jLabel119;
    javax.swing.JLabel jLabel12;
    javax.swing.JLabel jLabel120;
    javax.swing.JLabel jLabel121;
    javax.swing.JLabel jLabel122;
    javax.swing.JLabel jLabel123;
    javax.swing.JLabel jLabel124;
    javax.swing.JLabel jLabel125;
    javax.swing.JLabel jLabel13;
    javax.swing.JLabel jLabel14;
    javax.swing.JLabel jLabel15;
    javax.swing.JLabel jLabel16;
    javax.swing.JLabel jLabel17;
    javax.swing.JLabel jLabel18;
    javax.swing.JLabel jLabel19;
    javax.swing.JLabel jLabel2;
    javax.swing.JLabel jLabel20;
    javax.swing.JLabel jLabel21;
    javax.swing.JLabel jLabel22;
    javax.swing.JLabel jLabel23;
    javax.swing.JLabel jLabel24;
    javax.swing.JLabel jLabel25;
    javax.swing.JLabel jLabel26;
    javax.swing.JLabel jLabel27;
    javax.swing.JLabel jLabel28;
    javax.swing.JLabel jLabel29;
    javax.swing.JLabel jLabel3;
    javax.swing.JLabel jLabel30;
    javax.swing.JLabel jLabel31;
    javax.swing.JLabel jLabel32;
    javax.swing.JLabel jLabel33;
    javax.swing.JLabel jLabel34;
    javax.swing.JLabel jLabel35;
    javax.swing.JLabel jLabel36;
    javax.swing.JLabel jLabel37;
    javax.swing.JLabel jLabel38;
    javax.swing.JLabel jLabel39;
    javax.swing.JLabel jLabel4;
    javax.swing.JLabel jLabel40;
    javax.swing.JLabel jLabel41;
    javax.swing.JLabel jLabel42;
    javax.swing.JLabel jLabel43;
    javax.swing.JLabel jLabel44;
    javax.swing.JLabel jLabel45;
    javax.swing.JLabel jLabel46;
    javax.swing.JLabel jLabel47;
    javax.swing.JLabel jLabel48;
    javax.swing.JLabel jLabel49;
    javax.swing.JLabel jLabel5;
    javax.swing.JLabel jLabel50;
    javax.swing.JLabel jLabel51;
    javax.swing.JLabel jLabel52;
    javax.swing.JLabel jLabel53;
    javax.swing.JLabel jLabel54;
    javax.swing.JLabel jLabel55;
    javax.swing.JLabel jLabel56;
    javax.swing.JLabel jLabel57;
    javax.swing.JLabel jLabel58;
    javax.swing.JLabel jLabel59;
    javax.swing.JLabel jLabel6;
    javax.swing.JLabel jLabel60;
    javax.swing.JLabel jLabel61;
    javax.swing.JLabel jLabel62;
    javax.swing.JLabel jLabel63;
    javax.swing.JLabel jLabel64;
    javax.swing.JLabel jLabel65;
    javax.swing.JLabel jLabel66;
    javax.swing.JLabel jLabel67;
    javax.swing.JLabel jLabel68;
    javax.swing.JLabel jLabel69;
    javax.swing.JLabel jLabel7;
    javax.swing.JLabel jLabel70;
    javax.swing.JLabel jLabel71;
    javax.swing.JLabel jLabel72;
    javax.swing.JLabel jLabel73;
    javax.swing.JLabel jLabel74;
    javax.swing.JLabel jLabel75;
    javax.swing.JLabel jLabel76;
    javax.swing.JLabel jLabel77;
    javax.swing.JLabel jLabel78;
    javax.swing.JLabel jLabel79;
    javax.swing.JLabel jLabel8;
    javax.swing.JLabel jLabel80;
    javax.swing.JLabel jLabel81;
    javax.swing.JLabel jLabel82;
    javax.swing.JLabel jLabel83;
    javax.swing.JLabel jLabel84;
    javax.swing.JLabel jLabel85;
    javax.swing.JLabel jLabel86;
    javax.swing.JLabel jLabel87;
    javax.swing.JLabel jLabel88;
    javax.swing.JLabel jLabel89;
    javax.swing.JLabel jLabel9;
    javax.swing.JLabel jLabel90;
    javax.swing.JLabel jLabel91;
    javax.swing.JLabel jLabel92;
    javax.swing.JLabel jLabel93;
    javax.swing.JLabel jLabel94;
    javax.swing.JLabel jLabel95;
    javax.swing.JLabel jLabel96;
    javax.swing.JLabel jLabel97;
    javax.swing.JLabel jLabel98;
    javax.swing.JLabel jLabel99;
    javax.swing.JMenu jMenu1;
    javax.swing.JMenu jMenu2;
    javax.swing.JMenu jMenu3;
    javax.swing.JMenu jMenu4;
    javax.swing.JMenu jMenu5;
    javax.swing.JMenu jMenu6;
    javax.swing.JMenuBar jMenuBar1;
    javax.swing.JMenuItem jMenuItem1;
    javax.swing.JMenuItem jMenuItem10;
    javax.swing.JMenuItem jMenuItem11;
    javax.swing.JMenuItem jMenuItem14;
    javax.swing.JMenuItem jMenuItem15;
    javax.swing.JMenuItem jMenuItem16;
    javax.swing.JMenuItem jMenuItem17;
    javax.swing.JMenuItem jMenuItem18;
    javax.swing.JMenuItem jMenuItem2;
    javax.swing.JMenuItem jMenuItem3;
    javax.swing.JMenuItem jMenuItem4;
    javax.swing.JMenuItem jMenuItem5;
    javax.swing.JMenuItem jMenuItem7;
    javax.swing.JMenuItem jMenuItem8;
    javax.swing.JMenuItem jMenuItem9;
    javax.swing.JPanel jPanel4;
    javax.swing.JScrollPane jScrollPane1;
    javax.swing.JScrollPane jScrollPane10;
    javax.swing.JScrollPane jScrollPane11;
    javax.swing.JScrollPane jScrollPane12;
    javax.swing.JScrollPane jScrollPane13;
    javax.swing.JScrollPane jScrollPane14;
    javax.swing.JScrollPane jScrollPane15;
    javax.swing.JScrollPane jScrollPane17;
    javax.swing.JScrollPane jScrollPane18;
    javax.swing.JScrollPane jScrollPane19;
    javax.swing.JScrollPane jScrollPane2;
    javax.swing.JScrollPane jScrollPane20;
    javax.swing.JScrollPane jScrollPane22;
    javax.swing.JScrollPane jScrollPane3;
    javax.swing.JScrollPane jScrollPane4;
    javax.swing.JScrollPane jScrollPane5;
    javax.swing.JScrollPane jScrollPane6;
    javax.swing.JScrollPane jScrollPane7;
    javax.swing.JScrollPane jScrollPane8;
    javax.swing.JScrollPane jScrollPane9;
    javax.swing.JSeparator jSeparator1;
    javax.swing.JSeparator jSeparator10;
    javax.swing.JSeparator jSeparator11;
    javax.swing.JSeparator jSeparator12;
    javax.swing.JSeparator jSeparator13;
    javax.swing.JToolBar.Separator jSeparator14;
    javax.swing.JToolBar.Separator jSeparator15;
    javax.swing.JToolBar.Separator jSeparator16;
    javax.swing.JSeparator jSeparator17;
    javax.swing.JSeparator jSeparator18;
    javax.swing.JSeparator jSeparator19;
    javax.swing.JSeparator jSeparator20;
    javax.swing.JSeparator jSeparator21;
    javax.swing.JSeparator jSeparator22;
    javax.swing.JSeparator jSeparator23;
    javax.swing.JSeparator jSeparator24;
    javax.swing.JSeparator jSeparator25;
    javax.swing.JSeparator jSeparator26;
    javax.swing.JSeparator jSeparator27;
    javax.swing.JSeparator jSeparator28;
    javax.swing.JSeparator jSeparator29;
    javax.swing.JSeparator jSeparator3;
    javax.swing.JSeparator jSeparator30;
    javax.swing.JSeparator jSeparator31;
    javax.swing.JSeparator jSeparator32;
    javax.swing.JSeparator jSeparator33;
    javax.swing.JSeparator jSeparator34;
    javax.swing.JSeparator jSeparator35;
    javax.swing.JSeparator jSeparator36;
    javax.swing.JSeparator jSeparator37;
    javax.swing.JSeparator jSeparator38;
    javax.swing.JSeparator jSeparator39;
    javax.swing.JSeparator jSeparator4;
    javax.swing.JSeparator jSeparator40;
    javax.swing.JSeparator jSeparator41;
    javax.swing.JSeparator jSeparator42;
    javax.swing.JSeparator jSeparator43;
    javax.swing.JSeparator jSeparator44;
    javax.swing.JSeparator jSeparator45;
    javax.swing.JSeparator jSeparator5;
    javax.swing.JPopupMenu.Separator jSeparator6;
    javax.swing.JPopupMenu.Separator jSeparator7;
    javax.swing.JPopupMenu.Separator jSeparator8;
    javax.swing.JSeparator jSeparator9;
    javax.swing.JToolBar jToolBar1;
    javax.swing.JPanel mainPanel;
    private javax.swing.JProgressBar progressBar;
    private javax.swing.JLabel statusAnimationLabel;
    private javax.swing.JLabel statusMessageLabel;
    javax.swing.JPanel statusPanel;
    // End of variables declaration//GEN-END:variables

    private final Timer messageTimer;
    private final Timer busyIconTimer;
    private final Icon idleIcon;
    private final Icon[] busyIcons = new Icon[15];
    private int busyIconIndex = 0;
    private Double IntervaloPeriodoDesde=3000.0;
    private Double IntervaloPeriodoHasta=0.0;
    private int TotalCreditosPlan=0;
    
    private JDialog aboutBox;
//    private JDialog DetalleAprobacion;
    private JDialog IngresoAsignaturasBox;
    private JDialog IngresoMallaBox;
    private String UrlFuente;
    private String UrlMalla;
    private int CantAsignaturasInscritas;
    private boolean AprobacionGenerada = false;
    private boolean ReprobacionGenerada = false;
    private boolean RenunciaGenerada = false;
    private boolean EliminacionGenerada = false;
    private boolean PerrmanenciaGenerada = false;
    public Thread task;
}
